我想从URL中执行bash脚本。我使用 sh -c "$(curl -f ${SCRIPT_URL})"
. 它工作了,但如果url不正确或子脚本出错,父脚本就会成功完成。
例子:
set -e
sh -c "$(curl -f ${SCRIPT_URL})"
echo "success"
我可以通过使用一个额外的变量得到一个需要的错误。
set -e
url=$(curl -f ${SCRIPT_URL})
sh -c "$url"
echo "success"
但是我不想使用额外的变量。可以不使用附加变量吗?
编写 exit 1
如果 curl 失败,那么 sh 将会以状态为 1 的方式退出,而且 set -e
将会生效。
set -e
sh -c "$(curl -f "${SCRIPT_URL}" || echo exit 1)"
echo success
使用变量或中间文件,并处理错误而不依赖 set -e
确实是一个比较好的办法,不过。