首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在执行脚本时将参数传递给shebang解释器?

如何在执行脚本时将参数传递给shebang解释器?
EN

Unix & Linux用户
提问于 2015-01-31 20:07:22
回答 3查看 2.9K关注 0票数 3

假设我有my.script,比如

代码语言:javascript
运行
复制
#!/bin/bash

blah
blah

bash解释器接受一个--verbose参数。

如何执行my.script传递--详细到bash?

我知道我可以在命令行上执行bash --详细的my.script,但是我需要能够直接运行my.script

编辑:

好吧,也许我应该描述一下我的例子。我使用的是grunt.js构建系统,其cli是一个带有#的脚本!到节点。现在,grunt运行插件,我使用的这样一个插件需要在节点上启用某个标志。嘎吱嘎嘎的cli脚本没有这样做,我不想改变它。

EN

回答 3

Unix & Linux用户

发布于 2015-01-31 20:12:02

您可以将--verbose添加到shebang行:

代码语言:javascript
运行
复制
#!/bin/bash --verbose

如果您在Linux上运行这个程序,由于内核处理shebang行的方式,您只能以这种方式添加一个参数。在shell脚本中,可以使用set控制确定的shell选项;在本例中

代码语言:javascript
运行
复制
#!/bin/bash

set -o verbose

blah
blah

(虽然这只会显示set行之后的命令,而让--verbose在shebang行显示所有命令,包括shebang。)

票数 7
EN

Unix & Linux用户

发布于 2015-02-01 02:05:57

test.sh:

代码语言:javascript
运行
复制
#!/bin/bash -v
date
:
x=3

运行它会产生:

代码语言:javascript
运行
复制
$ ./test.sh
#!/bin/bash -v
date
Sat Jan 31 21:34:06 VET 2015
:
x=3
票数 0
EN

Unix & Linux用户

发布于 2015-02-05 18:01:04

怎么样

代码语言:javascript
运行
复制
node --option `which grunt`
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/182227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档