Как упростить команду: четыре одинаковые структуры?

ntpdate 110.75.186.247 >> /var/log/ntpdate.log ||  ntpdate 110.75.186.247 >> /var/log/ntpdate.log || ntpdate 203.123.48.218 >> /var/log/ntpdate.log|| ntpdate 103.16.199.21  >> /var/log/ntpdate.log

Я пробовал два метода, ни один из них не удалось.

ntpdate 110.75.186.247  ||  ntpdate 110.75.186.247  || ntpdate 203.123.48.218 || ntpdate 103.16.199.21  >> /var/log/ntpdate.log
ntpdate 110.75.186.247  ||  ntpdate 110.75.186.247  || ntpdate 203.123.48.218 || ntpdate 103.16.199.21  &&>> /var/log/ntpdate.log

Как упростить команду?

1
задан 27 March 2016 в 17:49

2 ответа

Проверьте, существует ли файл .bash_aliases в вашем домашнем каталоге с ls -a ~/.bash_aliases (если вы не запустите текстовый редактор по вашему выбору, который в моем случае nano ~/.bash_aliases) Добавьте следующую строку в этот файл: alias update-time='ntpdate 110.75.186.247 >> /var/log/ntpdate.log || ntpdate 110.75.186.247 >> /var/log/ntpdate.log || ntpdate 203.123.48.218 >> /var/log/ntpdate.log || ntpdate 103.16.199.21 >> /var/log/ntpdate.log' Сохранить и выйти из редактора Теперь вы можете просто запустить команду update-time, а отдых - магия :)
2
ответ дан 23 May 2018 в 12:33

Проблема с конструкцией

ntpdate 192.0.2.1 || ntpdate 203.0.113.2 >> /var/log/ntpdate.log

заключается в том, что >> применяется только к последней команде. Вы можете обратиться к этому, используя скобки вокруг таких команд:

( ntpdate 192.0.2.1 || ntpdate 203.0.113.2 ) >> /var/log/ntpdate.log

Вы можете думать, что набрав ntpdate несколько раз, является избыточным, и это должно быть возможно устранить. Вы можете исключить повторение ntpdate, используя цикл. Хотя в вашем конкретном случае команда настолько проста, что использование цикла приводит к большей сложности, чем устраняет:

for IP in 192.0.2.1 203.0.113.2
do
    ntpdate "$IP" && break
done >> /var/log/ntpdate.log

В качестве альтернативы может быть, что ваша исходная проблема лучше решена путем вызова ntpdate только один раз с несколькими адресами сервера:

ntpdate 192.0.2.1 203.0.113.2 >> /var/log/ntpdate.log
1
ответ дан 23 May 2018 в 12:33

Другие вопросы по тегам:

Похожие вопросы: