Различаются результаты передачи и последовательного выполнения команд?

«Остановка заданий» — это когда systemdожидает остановки определенного «задания», например. некоторый процесс, который он ожидает завершения, прежде чем продолжить. Если вы видите предупреждающее сообщение о том, что "выполняется остановленное задание..." (и т. д. ), технически это означает, что в очереди заданий что-то находится на рассмотрении.

Однако, прежде чем копаться во всей очереди системных заданий, имейте в виду, что иногда эти предупреждающие сообщения являются косвенным результатом факторов окружающей среды,(на самом деле, сообщение даже упоминается в их репозитории GitHub как возможное ошибка ).

Например, :мы получали сообщения, связанные с «остановкой задания», и не могли понять, почему.... Оказывается, на диске почти не осталось места, и ОС начала вести себя странно.

Обновление сервера до диска большего размера и перезагрузка устранили проблему;)

0
09.11.2020, 08:57
2 ответа

Поскольку bash не является PowerShell (или чем-то еще, я не знаю ), а left | rightне приводит к вызову rightсо строками или словами, выводимыми leftв качестве аргументов командной строки., но в rightзапускается с перенаправлением стандартного ввода из канала, куда leftзаписывает свой вывод. leftи rightтакже будут запускаться одновременно, а не последовательно.

Когда wc -lвызывается без каких-либо filesаргументов, он просто подсчитывает строки из своего стандартного ввода. seq 1 2 | wc -lнапечатает 2.

В любом случае, find.... | wc -lможет быть легко нарушена именами файлов, содержащими символы новой строки, которые, (к сожалению, )разрешены. С помощью GNU find вы можете обойти это с помощью:

count=$(find.... -name '*.HEIC' -printf _ | wc -c)

# or just
count=$(find.... -name '*.HEIC' -printf _); count=${#count}
0
18.03.2021, 22:51

из 'туалет человека '

wc [OPTION]... [FILE]...

Print newline, word, and byte counts for each FILE, and a total line if more than one FILE is specified.

count=$(wc -l $temp) 

равно

count=$(wc -l /path/to/file1 /path/to/file2 ) 

чтобы подсчитывались строки во всех файлах, а не количество файлов.
вы должны изменить свою вторую строку на

count=$(echo "$temp" | wc -l) 
1
18.03.2021, 22:51

Теги

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