В чем разница между перезагрузкой и выключением в Ubuntu / Linux?

попробуйте

cat a.txt | grep -f - b.txt

или (если вам нравится < () )

grep -f <(cat a.txt) b.txt
-121--251161-

С помощью zsh :

upToFirst5words=(${$(my-cmd)[1,5]})

Предположим, что по умолчанию используется значение IFS по умолчанию, которое будет разделено на пустые последовательности (космос, tab, newline) или нулевые значения.

Вы можете сделать:

argv=(${$(my-cmd)[1,5]})

Для этих 5 слов быть в $1 , $2 ... $5.

-121--128499-

Примечание: Я предположил, что вы обучаете себя Башу. Не используйте этот код в производстве. find «$ directory» -maxdepth 1 -type d доставит вам каталоги, -type f - файлы.

Так как он жалуется на строку 16, давайте посмотрим на него:

$dirs=`ls $1`

Если вы хотите назначить переменной, вы не должны включать $ . Полагаю, вы имели в виду:

dirs=`ls $1`

То, что происходит сейчас, это:

  • $ dirs , вероятно, пуст, так заменен ничем.
  • Выполняется команда ls , а ее выходные данные подставляются в 'command'.
  • Первый файл в каталоге называется Calibre , оставляя команду: = Calibre x y z...
  • = Calibre не является допустимой командой, поэтому ошибка.

Однако нас там еще нет: это пойдет не так, если в любом из имен файлов есть места. Чтобы исправить это, необходимо сделать больше:

  • Необходимо включить IFS = $ '\n ' где-то перед циклом для . При этом разделитель полей устанавливается на символ строки, который останавливает цикл для от разделения файлов на места или вкладках (технически возможно также, чтобы файл имел строку строки в имени файла: вы вряд ли когда-нибудь столкнетесь с таким файлом, и это не вызовет серьезных проблем в этом случае, если вы столкнетесь с таким файлом, но стоит знать о возможности в случае, если это когда-либо имеет значение).
  • Чтобы имя файла с местами не превращалось в несколько различных аргументов для -f и -d , нужно поставить кавычки $ i . (Так: [-f «$ i»] и [-d «$ i»] . Для поддержки каталогов с местами в них необходимо сделать то же самое для $1 , где он используется.
4
20.04.2018, 21:33
2 ответа

По сути, нет никакой разницы между завершением работы или перезагрузкой в ​​отношении сообщения «Требуется перезагрузка системы». И выключение, и перезагрузка очистят его. Однако это применимо только в том случае, если у вас нет нового ожидающего обновления, для полного применения которого требуется перезагрузка, и автоматические обновления могут запускаться в вашей системе с момента «последней перезагрузки», о которой вы упомянули.

Таким образом, вы должны помнить, установлена ​​ли и включена ли ваша система unattended-upgrades. Если это так, ваша система получает обновления один раз в день или около того, и если у вас настроены автоматические обновления для установки всех доступных обновлений (, а не только безопасности -только обновлений ), тогда она будет автоматически запускаться и устанавливаться автоматически. обновляется в настроенный момент времени. Лучший способ определить что — посмотреть на /var/log/apt/history.log, где появятся автоматические обновления. Это может объяснить «неожиданное» сообщение «Требуется перезагрузка», поскольку с момента последней перезагрузки ваша система могла получить новые обновления, вызвавшие появление сообщения.

11
27.01.2020, 20:46

Неважно.

"хвост /var/log/apt/history.log"
показывает автоматическое обновление сегодня утром в 6 утра.

Очевидно, у меня включены автоматические обновления, и время было очень сжатым.

2
27.01.2020, 20:46

Теги

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