Это со страницы 121 книги «Введение в Linux». для пользователей и администраторов" и это опечатка в тексте. Скрипт также доступен в других текстах от tuxcademy с той же опечаткой.
Одиночный символ »
отличается от двойного >>
и не используется в сценариях оболочки. Я предполагаю, что система верстки, используемая для форматирования текста книги, по какой-то причине запуталась в "`
и отформатировала его как кавычку (угол -цитату ), или это просто опечатка (. ] кавычки «...»
используются для цитирования обычного текста в другом месте документа ).
Сценарий должен выглядеть так:
#!/bin/bash
# Sort files according to their line count
for f
do
echo `wc -l <"$f"` lines in $f
done | sort -n
... но лучше было бы написать
#!/bin/sh
# Sort files according to their line count
for f; do
printf '%d lines in %s\n' "$(wc -l <"$f")" "$f"
done | sort -n
Обратные кавычки — это старая форма $(... )
, а printf
лучше использовать для вывода переменных данных. Кроме того, раскрытие переменных и подстановка команд должны быть заключены в кавычки, а скрипт не использует функции bash
, поэтому он может быть выполнен с помощью /bin/sh
.
Связанные: