通过Bash传递命令行参数

计划者

在刷bash时(已经有一段时间了),我惊讶地发现执行此代码(另存为script.sh):

echo "Arg 0 to script.sh: $0"
echo "Arg 1 to script.sh: $1"
function echo_args
{
    echo "Arg 0 to echo_args: $0"
    echo "Arg 1 to echo_args: $1"
}
echo_args

像这样:

>> ./script.sh argument

输出此:

Arg 0 to script.sh: ./script.sh
Arg 1 to script.sh: argument
Arg 0 to echo_args: ./script.sh
Arg 1 to echo_args:

令我惊讶的是,当未对$ 1进行类似处理时,script.sh的$ 0作为$ 0传递给了echo_args。在我看来,这两者都不应该。

任何澄清表示赞赏。

乔丹·罗宾逊(Jordan Robinson)

$ 0是bash中的“特殊参数”,始终求值为脚本名称,并在脚本开始处设置。看起来这也意味着它有些全局,因为它无法重新分配。

有关更多信息,这是一个很好的参考:

http://bash.cyberciti.biz/guide/$0

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过Bash传递命令行参数

来自分类Dev

Bash命令行参数通过ssh传递给sed

来自分类Dev

通过sbatch传递命令行参数

来自分类Dev

通过schtasks传递命令行参数

来自分类Dev

传递包含#的bash命令行参数

来自分类Dev

如何通过命令行或bash脚本文件在Talend导出的作业中传递参数?

来自分类Dev

如何通过.apk传递dalvik命令行参数?

来自分类Dev

查找通过命令行参数传递的类型的大小

来自分类Dev

从Bash命令行将参数传递给函数

来自分类Dev

传递包含点的bash命令行参数

来自分类Dev

在bash脚本中传递命令行参数

来自分类Dev

传递命令行参数和命令行参数

来自分类Dev

从UNIX.linux bash文件中提取字符。无法通过命令行传递参数(文件名)

来自分类Dev

从xargs传递命令行参数

来自分类Dev

NodeJS永远传递命令行参数

来自分类Dev

Eclipse插件:传递命令行参数

来自分类Dev

Docker传递命令行参数

来自分类Dev

Julia 传递参数,读取命令行

来自分类Dev

无法通过命令行传递值

来自分类Dev

将命令行参数传递给bash中的另一个命令

来自分类Dev

将字符串命令行参数传递给特定Linux命令的bash脚本

来自分类Dev

遍历Bash中的命令行参数

来自分类Dev

分割bash命令行参数

来自分类Dev

Bash参数替换:命令行与脚本

来自分类Dev

如何通过命令行参数将VmOptions传递给AndroidStudio?

来自分类Dev

如何通过命令行将变量作为参数传递给CasperJS脚本?

来自分类Dev

是否可以通过命令行参数传递给“执行启动器”操作?

来自分类Dev

通过gradle任务传递grails run-app的命令行参数

来自分类Dev

如何通过从命令行传递参数在Perl中应用IN子句

Related 相关文章

热门标签

归档