> Например вывод ls зависит от переменных окружения. И мало ли что там
> у юзера выставлено. В файлике это может сломаться в зависимости от
> настроек.О, да, это валидный аргумент. Но не стоит его переоценивать: опции командной строки имеют более высокий приоритет, чем переменные окружения. При этом, у bash -- с этим вообще беда: алиасы, функции... У coreutils тоже интересно -- есть ряд переменных окружения, которые влияют на очень многие утилиты: например, LC_ALL и POSIXLY_CORRECT. И да, эти переменные вполне могут влиять на вывод утилит, например при выставленном POSIXLY_CORRECT block-size по-умолчанию становится равным 512 байтам, уж не знаю везде ли, но в таких утилитах как ls, du, df -- по-любому. То есть, если следовать твоему аргументу бездумно, то мы придём к выводу, что на bash вообще нельзя писать скриптов. Если же подходить не бездумно, то получается, что надо искать какую-то разумную грань, между "не писать на bash" и "писать на bash как угодно". А где эта грань находится уже зависит от конкретной задачи.
Но, повторю, хоть этот твой аргумент и не остановит меня от использования ls и emerge в скриптах, твой аргумент принят: я согласен, что не стоит писать скрипты с использованием ls для сколь-нибудь широкой группы людей. Мне сложно оценить какие юзкейсы имел в виду Andrey Mitrofanov, и следует ли ему отказаться от ls в его скриптах, но, в общем случае, всё же не стоит.
>> это не мешает мне отправлять вывод emerge в пайп для дальнейшей фильтрации и обработки.
> Но в космос с тобой я бы не полетел...
Если ты пишешь скрипты на bash для управления летательными аппаратами, то даже если тебе захочется полететь со мной в космос, тебе это не удастся в силу моего нежелания. Я уж молчу о том, что тебя просто никто не пустит в космос писать там на bash, и уже из-за этого тебе не удастся туда полететь со мной ли или без меня.