说我有my.script
诸如
#!/bin/bash
blah
blah
并且 bash 解释器接受一个--verbose
参数。
如何执行 my.script 将 --verbose 传递给 bash?
我知道我可以在命令行上执行 bash --verbose my.script ,但我需要能够my.script
直接运行。
编辑:
好吧,也许我应该描述一下我的具体例子。我正在使用 grunt.js 构建系统,其 cli 是一个带有 #! 的脚本。到节点。现在,grunt 运行插件,我使用的一个这样的插件需要在节点上启用某个标志。 grunt cli 脚本不会这样做,我也不想更改它。
答案1
您可以添加--verbose
到 shebang 行:
#!/bin/bash --verbose
如果您在 Linux 上运行此程序,由于内核处理 shebang 行的方式,您只能以这种方式添加一个参数。在 shell 脚本中,您可以使用set
;控制某些 shell 选项。在这种情况下
#!/bin/bash
set -o verbose
blah
blah
(尽管这只会显示该set
行之后的命令,而--verbose
在 shebang 行中则显示所有命令,包括 shebang。)
答案2
测试.sh:
#!/bin/bash -v
date
:
x=3
运行它会产生:
$ ./test.sh
#!/bin/bash -v
date
Sat Jan 31 21:34:06 VET 2015
:
x=3
答案3
怎么样
node --option `which grunt`