2017-04-03 87 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爲您的輸入我嘗試了所有你建議的事情,但沒有爲我工作。
非常感謝。