![](/img/trans.png)
[英]Passing a pre-defined variable from shell script to shell script in Linux
[英]Linux shell passing variable values to main programme
我有一個程序,。/ a我在shell中循環運行。
for((i=1 ; i<=30; i++)); do
./a arg1 5+i &//arg2 that I need to pass in which is the addition with the loop variables
done
我怎么能傳入arg2,它是循環變量的加法?
另外,我有另一個程序是./b,我需要運行一次並接受所有5 + i參數。 沒有硬編碼,我怎么能這樣做呢。
./b arg1 6\
7\
8\
9\.....
謝謝。
使用您已經使用的相同(())執行添加,而使用“”進行連接:
for((i=1 ; i<=30; i++)); do
let j=$((5+i))
list="$list $j"
./a arg1 $j
done
./b $list
這應該工作:
( for((i=5 ; i<=30; i++)); do ./a $((5+i)); echo $((5+i)); done ) | xargs ./b
在當前的bash版本中,您可以使用{a..b}范圍表示法。 例如
for i in {1..30}; do
./a arg1 $i
done
./b arg1 {6..35}
對於你的第二部分,我會這樣做
./b arg1 $(seq 6 35)
或者如果你真的需要在一個循環中添加
declare -a list
for n in $(seq 1 30) ; do
list=("${list[@]}" $((5+n)))
done
./b arg1 ${list[@]}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.