set -o errexit 六、set -o pipefail set -e有一个例外情况,就是不适用于管道命令。 所谓管道命令,就是多个子命令通过管道运算符(|)组合成为一个大的命令。Bash 会把最后一个子命令的返回值,作为整个命令的返回值。也就是说,只要最后一个子命令不失败,管道命令总是会执行成功,因此它后面命令依然会执行,set -e就失效了。
可以看到,配置了set -x之后,运行ls ~命令,shell输出了参数:包括运行的shell名称,argv数目,argv等等...
shell bash set -x set +x 这两条命令 用于调试 shell 脚本。 测试结果:
会返回错误 test: line 5: var: unbound variable var未绑定变量 -x 参数 【-o xtrace】 执行命令之前打印命令,用来判断结果来自于哪里 #!/usr/bash set -x echo "hello world" 执行上面脚本,结果如下 + echo 'hello world' hello world 如果只想对特定的代码进行查看命令,可以使用 +x #!/usr/bash se...
set -x用来在运行结果之前,先输出执行的那一行命令。 #!/usr/bin/env bashset-xechobar 执行上面的脚本,结果如下。 $ bash script.sh+echobar bar 可以看到,执行echo bar之前,该命令会先打印出来,行首以+表示。这对于调试复杂的脚本是很有用的。
问Bash -x或set -xEN基础配置 测试对象 @Data public class ProductInfoModel implements Serializable ...
/bin/bashset -xfunction pass_back_a_string() { eval "echo in pass_...
/usr/bin/env bashset -eset -uset -x或者set -eux 但是,人们经常忽略这几个set命令的含义,我要说的是这个命令的作用其实非常的强大,可以提供脚本的debug效率和安全性。好了,下面我们就一 一分析一下这几个命令的真正含义。 set命令为shell内建命令,通过help set可以看到关于set的帮助信息。其主要作用是改变...
如果我们直接在终端运行set,不带任何参数,会显示所有的环境变量和Shell函数。 开启和关闭参数 我们常见的类似传参形式的set -e代表打开e代表的环境参数,相反的set +e代表关闭e代表的环境参数。 捕获单行异常 当我们遇到一个异常,如操作不存在的变量或者一行指令执行出错(行指令返回值不为0),Bash会默认输出错误信息...
(1)bash -x script.sh or sh -x script.sh (2)使用set -x和set +x对脚本进行部分调试。例如: #!/bin/bash #filename:debug.sh for i in {1..6}; do set -x echo $i set +x done echo "script executed" [cairui@cai shell]$ sh debug.sh ...