Bash脚本不处理传递的输入参数[重复]

Posted

技术标签:

【中文标题】Bash脚本不处理传递的输入参数[重复]【英文标题】:Bash script not handling input arguments passed [duplicate] 【发布时间】:2017-08-25 14:32:28 【问题描述】:

我在跑步:

python Parser.py "Bot Pick Nut"

通过 MobaXterm 在 linux 命令行中。这按预期工作,它返回 True。 我面临的问题是当通过 shell 脚本运行时它返回 false?任何人都可以建议为什么我的 shell 没有正确地将结果提供给我的 python 脚本吗?

脚本:

#!/bin/sh
python Parser.py argv[0]

命令:

 ./Shell.sh "Bot Pick Nut"

【问题讨论】:

【参考方案1】:

bash 位置参数$0 开始,$1 是脚本的第一个参数,随后从 $2..$n 编号,$0 是脚本本身的名称。

#!/bin/sh
python Parser.py "$1"

bash 中参数的简单列表,

$0              the first positional parameter, equivalent to argv[0] in C, see the first argument
$FUNCNAME       the function name (attention: inside a function, $0 is still the $0 of the shell, not the function name)
$1 … $9        the argument list elements from 1 to 9
$10 … $N   the argument list elements beyond 9 (note the parameter expansion syntax!)
$*              all positional parameters except $0, see mass usage
$@              all positional parameters except $0, see mass usage
$#              the number of arguments, not counting $0

【讨论】:

好吧,我觉得自己很笨。感谢您的帮助! 我不能投票,人们一直对我投反对票,所以我没有代表。在您接受答案之前,由于计时器的原因,我当时无法标记它。我真的刚刚从不得不步行半小时做 IRL 的事情中恢复过来。

以上是关于Bash脚本不处理传递的输入参数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在bash脚本中通过函数调用将参数/参数从一个函数传递到另一个函数[重复]

带有带参数的函数的Bash脚本[重复]

如何迭代 Bash 脚本中的参数

从 bash 脚本向 python 传递参数

在bash中使用getopts来获取可选的输入参数[重复]

在bash中将包含空格的变量传递给命令[重复]