【问题标题】:read more than one parameters right after the command in bash在 bash 中的命令之后立即读取多个参数
【发布时间】:2014-03-26 15:25:15
【问题描述】:

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

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

但是,如果我在命令行开头输入 test 时将脚本命名为“test”,则必须输入 enter 才能执行脚本的其余部分。我应该如何修改它,以便我可以在一行上运行整个东西?

【问题讨论】:

  • 避免将脚本命名为“test”,因为这已经是一个命令。如果您坚持,请确保通过指定路径运行自己的本地“测试”:./test

标签: linux bash shell parameters command


【解决方案1】:

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

./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

【讨论】:

    【解决方案2】:

    你可能需要的是这个:

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

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

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

    chmod u+x test.sh
    

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

    ./test.sh tik tak
    

    会回来

     tik tak
    

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 2021-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      • 2012-10-07
      • 1970-01-01
      相关资源
      最近更新 更多