Оболочка Linux, PIPESTATUS в фрагменте сценария sh -c [дубликат] ⇐ Linux
-
Anonymous
Оболочка Linux, PIPESTATUS в фрагменте сценария sh -c [дубликат]
У меня есть простой сценарий оболочки Linux:
а.ш:
eadd | эхо 'привет, мир' | тройник aa.txt выйти ${PIPESTATUS[0]} Я запускаю из командной строки: sh -c "./a.sh" затем запустите: эхо $? чтобы получить код возврата возврата, это: 127
Если я запущу: sh -c "./a.sh | tee bb.txt; выход ${PIPESTATUS[0]}" затем запустите: эхо $? Результат: 0.
Если я запущу: ./a.sh | тройник bb.txt; выйти из ${PIPESTATUS[0]}, Нет sh -c. Затем запустите: echo $? Результат: 127.
Почему код завершения при запуске с sh -c не является ожидаемым кодом завершения 127?
Как получить ожидаемый результат 127, если запустить sh -c "./a.sh | tee bb.txt; выйти ${PIPESTATUS[0]}"?
У меня есть простой сценарий оболочки Linux:
а.ш:
eadd | эхо 'привет, мир' | тройник aa.txt выйти ${PIPESTATUS[0]} Я запускаю из командной строки: sh -c "./a.sh" затем запустите: эхо $? чтобы получить код возврата возврата, это: 127
Если я запущу: sh -c "./a.sh | tee bb.txt; выход ${PIPESTATUS[0]}" затем запустите: эхо $? Результат: 0.
Если я запущу: ./a.sh | тройник bb.txt; выйти из ${PIPESTATUS[0]}, Нет sh -c. Затем запустите: echo $? Результат: 127.
Почему код завершения при запуске с sh -c не является ожидаемым кодом завершения 127?
Как получить ожидаемый результат 127, если запустить sh -c "./a.sh | tee bb.txt; выйти ${PIPESTATUS[0]}"?
Мобильная версия