是否可以测试是否使用 bash 脚本执行-x
?
我正在编写一个还运行一些远程脚本的脚本,我希望能够执行以下操作:
USE_X="$( run_with_x && "-x" || "" )"
ssh $host "bash $USE_X some_script.sh"
Run Code Online (Sandbox Code Playgroud)
小智 10
只看$-
变量。
USE_X=`case "$-" in *x*) echo "-x" ;; esac`
Run Code Online (Sandbox Code Playgroud)
(是的,我确实设法在不调用 grep 的情况下做到了这一点。保存 pid!)
如果脚本用 运行,则此表达式为真-x
,否则为假:[[ $- =~ x ]]
因此,如果脚本运行为“-x”,否则为-x
“”(空):$([[ $- =~ x ]] && echo "-x")
可能是最简单的解析方法$-
,类似于dagbrown 的方法(也是 pure bash
),但没有使用case
和反引号(子外壳):
if [[ ${-/x} != $- ]] ; then USE_X="-x"; fi
Run Code Online (Sandbox Code Playgroud)
甚至更短:
[[ ${-/x} != $- ]] && USE_X="-x"
Run Code Online (Sandbox Code Playgroud)
注意,[[
是不的调用test
内置程序(如与壳体[
),但一个bash语法构建体(如man bash
与本dev的建议)。所以我声称它是“更纯粹的 bash”;)
归档时间: |
|
查看次数: |
1907 次 |
最近记录: |