2017-04-03 57 views
0

我有两个脚本,一个在另一个脚本中调用。shell中的命令行参数

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

充分说明:

**Script 1 : run_simulation** 
prelayout_${1}_${2}.v.gz 
-input dump.sh  
**Script 2 : dump.sh** 
prelayout__${1}_${2}_tetsbench_ctl. 

现在,当我执行./run_simulation edt_intest chain 两个参数也越来越体现在第一个剧本,但不是在第二即它仍然在读prelayout__${1}_${2}_tetsbench_ctl,因为它是。

那么,如何将参数导出到dump.sh?
在此先感谢。

使用的工具是irun(ncsim)
脚本1:run_simulate

`irun \` 
`-v lib1 \` 
`-v lib2 \` 
`./prelayout_${1}_${2}_testbench.v.gz \` <-- this is testbench 
`-input dump.sh \` 
`-f file_list \` 
`-top prelayout_${1}_${2}_testbench_v_ctl \` <-- top module of testbench 
`+notimingchecks \` 
`-log ${1}_${2}.log` <-- log file 

脚本2dump.sh

`set tb_top prelayout_${1}_${2}_testbench_v_ctl` 
`force $tb_top.q_reg1.Q 1` 
`force $tb_top.q_reg2.Q 1` 

所以,当我运行命令./run_simulate edt_intest链runSimulate中的所有变量获取更新但不在dump.shfile_list
如何实现这一目标?

+0

为什么不从第一个脚本中调用第二个脚本,并将$ {1}和$ {2}添加到参数中? – Montmons

+0

你的意思是使用“-input dump.sh $ {1} $ {2}”? 如果是。我试过它没有接受它,并给出错误。此外,“输入”是一个模拟工具选项,它不会确定它会采取的天气。 –

回答

0

不能完全肯定我是否明白你正在尝试做的..但你为什么不只是做:

SCRIPT1:

# 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"" 

在你的情况下,但仍不清楚我的,我想你需要的东西,如:

SCRIPT1

# 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

+0

嗨SB87, 我想推广模拟脚本。 对于该脚本2,必须将其包含在带有“-input”选项的script1中。有了这个选项,我不能使用参数。 –

+0

查看编辑答案。 '-input'选项意味着什么? Bash没有这样的选项.. – Montmons

+0

“-input”是一个模拟工具选项,而不是bash。它用于读取文件以转储波形或强制某些信号。而且我无法单独获取必须附带“-input”的script2(dump.sh)。 –

0

我得到了我的剧本通过其他方法工作。
使用'sed'命令。首先,我使用sed命令将命令行参数反映到dump.sh文件中,然后重定向到另一个文件。
感谢SB87为您的输入我尝试了所有你建议的事情,但没有为我工作。
非常感谢。