在bash命令后立即读取多个参数

时间:2014-03-26 15:25:15

标签: linux bash shell parameters command

我正在创建一个bash脚本,我希望它只是一行,这意味着它不会与用户进行任何交互,并且参数将与命令位于同一行。用户单击return后,将输出结果。 现在,我有一些看起来像这样的东西:

#! \bin\bash
read $1 $2
do something with $1 and $2

但是,如果我将脚本命名为" test"当我在命令行的开头输入test时,我必须输入enter来执行要执行的其余脚本。我应该如何修改它以便我可以在一行上运行整个事情?

2 个答案:

答案 0 :(得分:3)

将参数传递给脚本的标准方法不是read(主动等待来自stdin的输入),而只是用同一行上的参数调用脚本:

./my_script.sh param1 param2

然后在脚本中,您可以使用$1$2等访问这些参数。示例(另请注意第一行 - 这描述了应该使用哪个shell来运行脚本,并且应该是一个有效的路径 - 即/bin/bash,而不是反斜杠):

#!/bin/bash
echo "First: $1 Second: $2"

然后调用脚本:

$ ./my_script.sh Hello There
First: Hello Second: There

答案 1 :(得分:2)

你可能需要的是:

您的脚本名称test.sh包含以下内容:

 #!/bin/bash
 echo "$1 $2"

然后,更改权限,以便您可以在命令行上执行脚本:

chmod u+x test.sh

并使用参数运行脚本(在本例中为两个):

./test.sh tik tak

将返回

 tik tak