Можно также использовать команду, command
. Как так:
$ alias echo="command echo 'hi: '"
$ echo "blah"
hi: blah
Но я могу обойти псевдоним echo
как так:
$ command echo "blah"
blah
Заметьте, что я на самом деле использовал command
в моем alias
определение также. Это избегает псевдонима от цикличного выполнения назад на себе.
Не думаю, что вы сможете подавить общее количество в форме мультиархива.
Самый простой способ, который я могу придумать, это придерживаться формы с одним артефактом, когда это необходимо:
if [ "$#" -lt 5 ]
then
for f in "$@"; do wc -l -- "$f"; done >>"$1"
else
wc -l "$@" >> "$1"
fi
откладывать на последнюю строчку из WC
, если для вас слишком мало строк, чтобы вы хотели получить Grand Total.
word_counts=$(wc -l -- "$@")
newline='
'
if [ "$#" -le 9 ]; then
word_count=${word_count%"$newline"*}
fi
printf '%s\n' "$word_count" >>"$1"
Обратите внимание на двойные цитаты в «$ @»
и вокруг других переменных подменных, без этого скрипта нарушится на имена файлов, содержащих пробел (и некоторые другие специальные символы), с абсолютно отсутствующим погашением. Примечание также -
в в
WC -L - «$ @»
, в случае, если имя файла начинается с -
- -
, WC
будет интерпретировать то имя файла в качестве опции).