Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 仅当成功时才将命令输出导出到变量(Bash set-e)_Linux_Bash_Shell_Error Handling_Command - Fatal编程技术网

Linux 仅当成功时才将命令输出导出到变量(Bash set-e)

Linux 仅当成功时才将命令输出导出到变量(Bash set-e),linux,bash,shell,error-handling,command,Linux,Bash,Shell,Error Handling,Command,我希望下面的脚本失败。(并且仍然将err打印到stderr) 编辑:根据@ray comment修改问题问题在于导出命令。解决方案是将分配与导出分开: #!/bin/bash set -e X=$(echo a) Y=$(ekko b) export X export Y echo ok 脚本将在Y=$(ekko b)处失败,并打印到stderr第4行:ekko:command not found,这不是您想要的吗?您是对的。我来纠正这个问题,现在我也得到了答案:)谢谢别忘了你自己的答案。 #

我希望下面的脚本失败。(并且仍然将err打印到stderr)


编辑:根据@ray comment修改问题

问题在于导出命令。解决方案是将分配与导出分开:

#!/bin/bash
set -e
X=$(echo a)
Y=$(ekko b)
export X
export Y
echo ok

脚本将在
Y=$(ekko b)
处失败,并打印到stderr
第4行:ekko:command not found
,这不是您想要的吗?您是对的。我来纠正这个问题,现在我也得到了答案:)谢谢别忘了你自己的答案。
#!/bin/bash
set -e
X=$(echo a)
Y=$(ekko b)
export X
export Y
echo ok