Привет всем! Никак не могу придумать, как решить простую задачу. Есть некий скрипт, все сообщения которого надо выводить на экран и одновременно в лог. При этом по окончании работы скрипта нужно знать, какой он выдал код возврата (удачей завершился или нет). Вот такая попытка (вместо имени скрипта - true/false): #!/bin/bash echo "----------" echo "ok:" true | tee ./test1.log if [ "$?" = "0" ] ;then echo "ok" else echo "fail" fi echo "---" echo "fail:" false | tee ./test2.log if [ "$?" = "0" ] ;then echo "ok" else echo "fail" fi echo "-----------" дала вот такой результат: ---------- ok: ok --- fail: ok ----------- Почему? Код возврата конвеера - это то, что вернула последняя команда в конвеере? Вроде бы вот так эта мысль подтверждается: false | true | true if [ "$?" = "0" ] ;then echo "ok" else echo "fail" fi true | true | false if [ "$?" = "0" ] ;then echo "ok" else echo "fail" fi Ответ: ok fail Как-то странно. По-моему, логичнее было бы вычислять код возврата по всему конвееру: если хоть одна неудача - значит, неудача; иначе успех. Далее: #!/bin/bash echo "----------" RES=5 echo "ok:" (true && RES=0) | tee ./test1.log echo "RES=" $RES echo "---" RES=5 echo "fail:" (false && RES=0) | tee ./test2.log echo "RES=" $RES echo "-----------" Дало: ---------- ok: RES= 5 --- fail: RES= 5 ----------- Почему не так: ---------- ok: RES= 0 --- fail: RES= 5 ----------- В чём тут подвох?
Ответ на:
комментарий
от mky
Ответ на:
комментарий
от sergey_feo
Ответ на:
комментарий
от sergey_feo
Ответ на:
комментарий
от mky
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [bash][dfm]Оно почему то всегда true. (2011)
- Форум [Паскалъ] Need Help (2011)
- Форум Создать интерактивную оболочку команд (2014)
- Форум bash rsync backup problem (2013)
- Форум Типичный keygen на bash (2019)
- Форум Как обнулить значение бездействия после standby? (2020)
- Форум Мой первый bash скипт (2011)
- Форум Не работает пренаправление через cat (2016)
- Форум Отправка почты c помощью mail в bash скрипте (2017)
- Форум Замена строки в xml файле (2014)