Печатать по одному файлу в строке с помощью эха

Tengo un Dell Latitude e4300. Descubrí que el problema de CPU alta desapareció cuando deshabilité bluetooth integrado en el BIOS.

5
17.06.2019, 14:53
1 ответ

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

printf '%s\n' small*jpg

Вы также можете:

printf '%s\0' small*jpg

для вывода списка в записи с разделителями NUL (, чтобы его можно было -обработать после обработки; например, используя GNU xargs -r0; помните, что символ новой строки так же действителен, как пробел или любой другой символ в имени файла ).

До того, как POSIX придумал printf, ksh уже имел утилиту printдля замены echo. zsh скопировал его и добавил опцию -lдля печати аргументов по одному в строке:

print -rl -- small*jpg

ksh93 добавил опцию -fк printдля printfподобной печати. Также скопировано zsh, но не другими реализациями ksh :

.
print -f '%s\n' -- small*jpg

Обратите внимание, что все они по-прежнему выводят пустую строку, если не задан аргумент. Лучше printlnможно записать в виде функции как:

println() {
  [ "$#" -eq 0 ] || printf '%s\n' "$@"
}

Вzsh:

println() print -rC1 -- "$@"
16
27.01.2020, 20:31

Теги

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