Вы можете использовать аргумент -s
для curl, это для тихого режима. Он не будет показывать индикатор прогресса или сообщение об ошибке.
Это просто :Не использовать одну команду, а разделить:
test() {
local why
why="$(eval "echo 'test'"; exit 3)"; echo $?
}
test
3
Проблема заключалась в том, что local
является встроенной командой с собственным кодом выхода... Если вы избегаете этой команды одновременно с назначением переменной, вы получаете код выхода из подоболочки.