Когда вы ссылаетесь на переменную без кавычек (например, echo $ files
), оболочка разделяет значение на пробелы и передает каждый термин как отдельный параметр командной строки. Новые строки обрабатываются так же, как и любые другие пробелы. Программа echo
вообще не видит символы новой строки; он просто получает массив строк, каждая из которых представляет собой одно имя файла.
Когда вы ссылаетесь на переменную в кавычках (например, echo "$ files"
), оболочка не выполняет разделения на пробелы; вместо этого он передает все значение без изменений как единственный аргумент. Программа echo
получает одну длинную строку, содержащую символы новой строки.
Если оставить в стороне переменные, это то же поведение, что и при кавычках буквальных значений. Если вы напишете echo foo bar
, пробелы удаляются оболочкой, а echo
просто получает строки foo
и bar
, и он напечатает эти строки с одним пробелом между ними, так как он закодирован для объединения нескольких аргументов. Если вы напишете echo "foo bar"
, echo
получит единственную строку foo bar
и распечатает ее как есть.
timedatectl
работает только с собственным демоном NTP systemd (systemd-timesyncd
), если вы используете другой демон NTP, вы должны использовать поставляемые им инструменты (chronyc, ntpq,....)
На вашем компьютере определенно не должно быть одновременно запущено несколько демонов NTP.
timedatectl работает с любым клиентом ntp (, например chrony ). systemd поддерживает systemd -timesyncd из v213, но в последней версии CentOS 7 (я сейчас на 7.7.1908 )они решили отключить его.
Если вы хотите использовать клиент ntp вместо timedatectl, я бы предложил использовать cron. @daily должен справиться с этой задачей.
напр.
@daily /usr/sbin/ntpdate -u gr.pool.ntp.org
Но вы всегда можете установить chrony и просто установить для ntp true значение timedatectl
# timedatectl set-ntp true
Failed to set ntp: NTP not supported
# yum -y install chrony
# timedatectl set-ntp true
# timedatectl | grep NTP
NTP enabled: yes
NTP synchronized: no
и если вы включите службу chrony, то вы увидите, что timedatectl также синхронизировал NTP
# systemctl enable chronyd
# systemctl start chronyd
# timedatectl | grep -i ntp
NTP enabled: yes
NTP synchronized: yes