我正在編寫一個採用多個輸入變量(最多7個)的bash腳本,但只有前4個是必需的。 其餘3個是可選的,並且已經在腳本中設置,除非在從終端提示符調用腳本時指定。如何在不寫入所有其他輸入變量的情況下將變量傳遞到bash腳本
當我只想改變其中一個可選變量時,就會出現問題。例如,如果我想改變第7個變量,我還必須寫下第5和第6個變量值,否則腳本會認爲這是第5個參數,當然不是第7個變量。我怎樣才能做到這一點?
這裏是什麼我的腳本的這一部分看起來像現在一個例子:
#!/bin/bash
tstart=$1
tstop=$2
coord1=$3
coord4=$4
optional1=${5:-100}
optional2=${6:-50000}
optional3=${7:-4}
...
當調用腳本,如果我想改變變量optional3,我也必須寫optional1的vaules和optional2。有沒有一種方法類似:
$ myscript.sh var1 var2 var3 var7=vaule_7
(類似於你使用默認的變量值做功能蟒蛇什麼)
非常感謝您!
Pere。
可能重複輸入他們[Bash getopt - 移動多個參數](http:// stackoverflow。com/questions/35081838/bash-getopt-shift-multiple-parameters) –
基本上你需要解析參數,所以檢查任何參數是否以'var7 ='開頭。之後,你可以剝去這部分,你得到你的論點。或者(更好的方式)使用像getopt這樣的解析器 – mame98