Сегодня про хитрости с пайпами и кодами завершения в Bash. Максимально упрощаю, чтобы стало понятнее.
Собираем такую команду: Если после её выполнения сделать: echo $?, то получим статус выхода 0. То есть у нас есть статус завершения именно команды true. НО теперь узнать с каким кодом завершилась первая команда false?
А вот так, модифицируем команду: В этом случае будет получен код завершения 1, который справедлив для команды false. Как ты можешь заметить, если в PIPESTATUS изменить [0] на [1], мы снова получим статус завершения 0 (то есть для true)...
Тадам! Сегодня научимся определять, отправляется ли стандартный вывод скрипта в терминал либо передается с помощью pipe в другой скрипт/утилиту. Чтобы стало понятнее, нужно читать дальше.
Есть у меня некий Bash скрипт, пусть будет таким: Если его выполнить, то на экран выведется ожидаемый результат. Но что если я хочу добавить логику в этот скрипт, которая будет детектить pipe и отдавать другой ожидаемый результат?
Давай по порядку, смотри: Этот скрипт выведет строку Hello Bashdays Welcome, где слово Bashdays будет жирным (bold)...