Простите за запоздалое дополнение по этой теме. Надеюсь, это поможет кому-то в какой-то момент.
Я хотел бы дополнительно добавить, что можно проверить, запущена ли служба ntpd из командной строки, как показано ниже (для дистрибутивов Linux, которые используют систему инициализации System V, и многие другие, которые обеспечивают эмуляцию и /или псевдоним):
[user@host ~]$ sudo service ntpd status
ntpd (pid 8374) is running...
Если служба запущена, вы можете остановить ее, нажав:
[user@host ~]$ sudo service ntpd stop
Shutting down ntpd: [ OK ]
Это было выполнено в приведенной ниже версии Linux:
[user@host ~]# cat /etc/version
2017 1 PCLinuxOS
С указанными ниже версиями внешнего интерфейса/графического интерфейса:
[user@host ~]$ kde4-config --version
Qt: 4.8.7
KDE Development Platform: 4.14.18
kde4-config: 1.0
Примечание. :параметр версии --можно использовать с любой «стандартной» программой KDE, такой как Konsole, Kate, Konqueror и т. д. То же самое можно сделать в графическом интерфейсе, выбрав раскрывающееся -меню «Справка». -> О KDE.
Я столкнулся с той же проблемой, когда служба ntpd, активная на моей рабочей станции, не позволяла графическому интерфейсу установить связь с внешней общедоступной службой NTP, настроенной в виджете [Модуль управления датой и временем KDE], что приводило к ошибке вы (и я оба )получили.
Вы можете использовать синтаксис ${var#pattern}
, который удалит кратчайшее совпадение pattern
с начала переменной:
$ path="things useless things... path/another/files1/useful/path/here"
$ echo "${path#*another/}"
files1/useful/path/here
Кроме того, вы можете использовать любой стандартный инструмент для анализа текста. Например:
$ newPath=$(sed -E 's|.*(files1/)|\1|'<<<"$path")
$ echo $newPath
files1/useful/path/here
Как насчет (для файлового скрипта):
sed -n 's#\(path="\).*/\(files1/[^"]*"\)#\1\2#p' script
Или, если значение находится внутри переменной:
$ path="things useless things... path/another/files1/useful/path/here"
$ echo "/files1/${path##*/files1/}"
/files1/useful/path/here
Поскольку вы используете bash
, вы также можете использовать его встроенный механизм регулярных выражений:
$ path="things useless things... path/another/files1/useful/path/here"
$ [[ "$path" =~ /files1/.*$ ]] && echo "$BASH_REMATCH"
/files1/useful/path/here