Вывод команды в переменной и подавление стандартного вывода

rm -rf top/?/Output/platform

или, если каталог 2-го уровня может быть более чем одним символом (A, B или C в вашем примере):

rm -rf top/*/Output/platform
1
03.03.2017, 13:31
1 ответ

Нет никакой разницы между первым и вторым заданием, или с var=$(echo foo), что касается стандартного вывода.

Во второй инструкции:

ElapsedTime=$(echo "$time" | tail -c 23)

Команда standard output, которая является стандартным выводом конвейера, в данном случае tail stdout, присваивается переменной content и не выводится на экран.

С другой стороны, если одна из внутренних команд выведет что-то в свой стандартный поток ошибок, это будет выведено на экран, поскольку вы не перенаправляете stderr.

Обратите внимание, что echo "$time" ненадежен. Я бы рекомендовал printf "%s\n" "$time", чтобы избежать неожиданных побочных эффектов значения time.

tail -c -number - это POSIX, поэтому я бы не ожидал, что эта команда не сработает.

1
27.01.2020, 23:46

Теги

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