我正在创建一个bash脚本,我希望它只是一行,这意味着它不会与用户进行任何交互,并且参数将与命令位于同一行。用户单击return后,将输出结果。 现在,我有一些看起来像这样的东西:
#! \bin\bash
read $1 $2
do something with $1 and $2
但是,如果我将脚本命名为" test"当我在命令行的开头输入test时,我必须输入enter来执行要执行的其余脚本。我应该如何修改它以便我可以在一行上运行整个事情?
答案 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