В if
условия необходимо использовать defaults read
команда, и нет write
. Иначе результат всегда верен и конечно elif
никогда выполнения.
Кроме того, это не синтаксис для if
условия. Необходимо использовать:
if [ $(command) == "TRUE" ]; then
Но в этом случае, возможно, что-то вроде этого было бы менее подробным:
STATUS=$(defaults read com.apple.finder AppleShowAllFiles)
case "$STATUS" in
"TRUE") OPTION="FALSE" ;;
"FALSE") OPTION="TRUE" ;;
esac
defaults write com.apple.finder AppleShowAllFiles $OPTION
killall Finder
Что-то вроде следующее должно работать.
restrict default ignore
restrict 127.0.0.1 nomodify
restrict 192.168.2.102 mask 255.255.255.0 nomodify notrap noquery
server 192.168.2.102 burst iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 10
Я заставил его работать, так что для потомков, кто-то на #ntp
(freenode) сказал, что машина А может быть недовольна, если Б не сообщит о себе как о синхронизированном. Это можно наблюдать с помощью ntpq -p
на B, не показывая никаких серверов, префикс которых помечен звездочкой.
Фальсификация локального источника на B (который действительно синхронизируется, изучив системные часы) исправила это:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
Однако, важно, чтобы не делал этого на A, так как он будет доверять страту 10 больше, чем тому, что он считает "локально синхронизированной" машиной B как.