shell中的命令行参数

shell中的命令行参数,shell,command-line-arguments,Shell,Command Line Arguments,我有两个脚本,一个在另一个中调用 我试图使用命令行参数运行这些脚本,但问题是,参数并没有反映到第二个脚本中 详细说明: **Script 1 : run_simulation** prelayout_${1}_${2}.v.gz -input dump.sh **Script 2 : dump.sh** prelayout__${1}_${2}_tetsbench_ctl. 现在,当我执行/run\u simulation edt\u intest chain 这两个参

我有两个脚本,一个在另一个中调用

我试图使用命令行参数运行这些脚本,但问题是,参数并没有反映到第二个脚本中

详细说明:

**Script 1 : run_simulation**  
prelayout_${1}_${2}.v.gz  
-input dump.sh      
**Script 2 : dump.sh**  
prelayout__${1}_${2}_tetsbench_ctl.
现在,当我执行
/run\u simulation edt\u intest chain
这两个参数在第一个脚本中得到反映,但在第二个脚本中没有得到反映,即它仍在读取
prelayout\uuuuu${1}\u${2}\u tetsbench\u ctl

那么,如何将参数导出到dump.sh?
提前谢谢

使用的工具是irun(ncsim)
脚本1:运行模拟

因此,当我运行命令/run\u simulate edt\u intest chain时,run\u simulate中的所有变量都会更新,但不会在dump.shfile\u list中更新
如何做到这一点


不完全确定我是否理解你想做什么。。但你为什么不这样做呢:

脚本1:

# Do Something
prelayout_${1}_${2}.v.gz  
# Do Something
./Script2.sh "$1" "$2"
这将使脚本2使用与执行脚本1相同的参数执行

或者,如果需要将脚本2的输出保存在变量中,只需执行以下操作:

# Do Something
prelayout_${1}_${2}.v.gz  
# Do Something
INPUT_VAR="$(/bin/bash Script2.sh "$1" "$2")"
或者,如果您想要更大的灵活性:

# Do Something
prelayout_${1}_${2}.v.gz  
# Do Something
ACTIVATE_SCRIPT2="$(/bin/bash Script1.sh)"
OUTPUT_SCRIPT2="$ACTIVATE_SCRIPT2 "$1" "$2""
在你的情况下,尽管我还不清楚,我想你需要这样的东西:

脚本1

# Do Something
prelayout_${1}_${2}.v.gz  
# Do Something
INPUT_SCRIPT2_INTO_SIMULATION_PROGRAM="$(/path/to/your/simulation/program -input Script2.sh "$1" "$2")"
如果你这样做了:

/Script1.sh edt_intest chain
Script1将为您运行以下命令,并将输出保存在变量中:


/path/to/your/simulation/program-input Script2.sh edt_intest chain
我通过另一种方法使脚本工作。
使用'sed'命令。首先,我使用sed命令将命令行参数反映到dump.sh文件中,然后重定向到另一个文件。
感谢SB87提供的意见我尝试了你建议的所有方法,但都无效。

非常感谢。

为什么不从第一个脚本调用第二个脚本,并将${1}和${2}添加到参数中?您的意思是使用“-input dump.sh${1}${2}”?如果有的话。我已经试过了,但它并没有犯错误。另外“-input”是一个模拟工具选项,不确定它是否会使用。嗨,SB87,我正在尝试概括模拟脚本。为此,script2必须包含在script1中,并带有“-input”选项。使用该选项时,我不能使用参数。请参阅编辑后的答案。使用
-input
选项意味着什么?Bash没有这样的选项..“-input”是一个模拟工具选项,而不是Bash。它用于读取转储波形或强制某些信号的文件。而且我不能单独编写script2(dump.sh)的源代码,它必须带有“-input”。我真的不明白你想实现什么。。您所说的模拟工具是什么意思?你能链接到一个使用它的例子吗?我以前从未见过它。。否则,发布用于执行脚本的确切命令行。因为你现在有一个
/run\u simulation edt\u intest chain
只运行一个脚本..是的,“/run\u simulation edt\u intest chain”是一个脚本,但该脚本调用另一个文件/脚本,我需要${1}来表示edt\u intest和${2}=chain,我如何实现这一点?我们可以放弃与simulation tool相关的问题,但问题是我需要-input(这是一个特定于工具的选项),并且使用此选项,我需要将$1和$2的值导出到script1中识别的script2。
# Do Something
prelayout_${1}_${2}.v.gz  
# Do Something
ACTIVATE_SCRIPT2="$(/bin/bash Script1.sh)"
OUTPUT_SCRIPT2="$ACTIVATE_SCRIPT2 "$1" "$2""
# Do Something
prelayout_${1}_${2}.v.gz  
# Do Something
INPUT_SCRIPT2_INTO_SIMULATION_PROGRAM="$(/path/to/your/simulation/program -input Script2.sh "$1" "$2")"