【问题标题】:How do I pass an integer argument to a shell script which then passes it to a program?如何将整数参数传递给 shell 脚本,然后将其传递给程序?
【发布时间】:2014-12-07 15:33:41
【问题描述】:

这是我正在尝试做的一个示例:

#!/bin/bash
set n = $argv[1]
g++ main.cpp
./a.out n

我试图在 shell 中这样调用它:

myscript 3

输出与执行以下操作不同

./a.out 3

但我希望它是一样的。是怎么做到的?

【问题讨论】:

    标签: c++ bash shell g++ command-line-arguments


    【解决方案1】:

    您似乎在混合使用不同的 shell 语法。

    • 'set' 不设置普通变量。只需使用n=value
    • 对 argv[1] 使用 $1
    • 通过在前面放一个 $ 来扩展变量,如下面最后一行所示

    这就是我认为你想要的:

    #!/bin/bash
    n=$1
    g++ main.cpp
    ./a.out $n
    

    您还可以通过使用 $@ 传递所有提供的参数,如下所示:

    #!/bin/bash
    g++ main.cpp
    ./a.out $@
    

    【讨论】:

      猜你喜欢
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      相关资源
      最近更新 更多