Около того, что сказал Gilles:
Когда эти инструменты, где изобретенный HDD был очень маленьким, по сравнению с сегодня. Вы не нуждались в помощи для чтения числа как 400 000.
И если Вам не нравится он, используйте систему псевдонима. В Вашем корневом каталоге,
edit ~/.bashrc
и вставьте, например:
alias df='df -h'
alias du='du -h'
Обратите внимание, что в отличие от многих других языков, Нельзя иметь пробел прежде или позади оператора присваивания (знак "равно").
Вы, вероятно, означали писать
FILE_NAME=`(cat somefile | head -1) | tee -a dump.txt`
echo $FILE_NAME
(или head -1 somefile
избавиться от кошки)
Канал снаружи 'является большим количеством логической ошибки. Вы ожидали бы, что это будет синтаксической ошибкой, но это не то, как Bash работает, это просто не дает ожидаемый результат.
Также сравните без переменного присвоения:
$ echo hello > somefile
$ `(cat somefile | head -1)` | tee -a dump.txt
bash: hello: command not found
Первая строка somefile не отражена к stdout, но интерпретирована как команда вместо этого. Так как команда не может быть выполнена, мишень не становится произведенной и действительно не выполняется ни один, поскольку нет никакого канала для создания.