如何将整数参数传递给shell脚本然后将其传递给程序?

Gre*_*reg 0 c++ bash shell g++ command-line-arguments

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

#!/bin/bash
set n = $argv[1]
g++ main.cpp
./a.out n
Run Code Online (Sandbox Code Playgroud)

我试图在shell中调用它,如下所示:

myscript 3
Run Code Online (Sandbox Code Playgroud)

输出与执行以下操作不同

./a.out 3
Run Code Online (Sandbox Code Playgroud)

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

har*_*mic 5

您似乎使用了不同shell语法的混合.

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

这就是我认为你想要的:

#!/bin/bash
n=$1
g++ main.cpp
./a.out $n
Run Code Online (Sandbox Code Playgroud)

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

#!/bin/bash
g++ main.cpp
./a.out $@
Run Code Online (Sandbox Code Playgroud)