- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有什么方法可以运行 bash 脚本 X,以便如果 X 调用可执行的 bash 脚本 Y,那么 Y 以“sh -eux”开头?
X.sh:
./Y.sh
Y.sh:
#!/bin/sh
echo OK
最佳答案
通过导出 SHELLOPTS
环境变量,可以使用在父级中设置的相同 shell 选项运行子 shell。
在您无法编辑 X.sh
和 Y.sh
的情况下,我会创建一个包装器脚本,它只导出 SHELLOPTS
在调用 X.sh
之前。
例子:
#!/bin/sh
# example X.sh which calls Y.sh
./Y.sh
.
#!/bin/sh
# example Y.sh which needs to be called using sh -eux
echo $SHELLOPTS
.
#!/bin/sh -eux
# wrapper.sh which sets the options for all sub shells
export SHELLOPTS
./X.sh
直接调用X.sh
显示-eux
选项没有在Y.sh
中设置
[lsc@aphek]$ ./X.sh
braceexpand:hashall:interactive-comments:posix
通过 wrapper.sh
调用它显示选项已传播到子 shell。
[lsc@aphek]$ ./wrapper.sh
+ export SHELLOPTS
+ ./x.sh
+ ./y.sh
+ echo braceexpand:errexit:hashall:interactive-comments:nounset:posix:xtrace
braceexpand:errexit:hashall:interactive-comments:nounset:posix:xtrace
在 GNU bash 版本 3.00.15(1)-release 上测试。 YMMV。
关于bash 递归 xtrace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4325444/
有什么方法可以运行 bash 脚本 X,以便如果 X 调用可执行的 bash 脚本 Y,那么 Y 以“sh -eux”开头? X.sh: ./Y.sh Y.sh: #!/bin/sh echo OK
我有一个 .sh 脚本,它使用 set -o xtrace 来打印以下所有命令。我想给这些命令上色。我尝试像这样使用 PS4 变量: export PS4='\[\e[36m\]\+ \[\e[m\]
有没有办法在打开 xtrace (set -o xtrace) 的情况下从输出中隐藏命令? 在 DOS 中,技术是打开 echo on 但在隐藏命令前加上 @ 符号。 最佳答案 我从未在 bash 中
我正在编写一个 shell 脚本,它循环遍历一些值并为每个值运行一个长命令行。我想一路打印出这些命令,就像make运行 makefile 时会这样做。我知道我可以在运行它们之前“回显”所有命令,但这感
背景: 我想记录 Eclipse 上的用户 Activity ,例如,用户克隆了哪些 git 存储库,合并冲突何时发生,等等。 我想到了使用 OpenJ9 -Xtrace 选项。首先,为了测试 Ope
我正在使用“set -x”在 bash 脚本中启用命令回显。当我关闭回显时,我发出“set +x”但我不想回显该命令。为此,我发出命令: { set +x; } 2>/dev/null 这很好用。但是
调试 shell 脚本时,我发现使用 xtrace on 运行很有帮助: -x xtrace Print commands and parameter
当我还为详细模式设置详细时,我正在尝试配置 PS4 以获得更好的 xtrace 输出。我想做的一些事情会生成子 shell,但我希望看到这些操作的任何 -x 或 -v 输出,因为它们会为每一行打印。
我是一名优秀的程序员,十分优秀!