如何將命令行參數轉換爲bash腳本數組?在Bash中將命令行參數轉換爲數組
我想借此:
./something.sh arg1 arg2 arg3
並將其轉換爲
myArray=(arg1 arg2 arg3)
,這樣我可以用myArray的爲腳本中的進一步使用。
此之前的SO後接近,但不進入如何創建一個數組:How do I parse command line arguments in Bash?
我需要的參數轉換爲常規bash腳本陣列;我意識到我可以使用其他語言(例如Python),但需要在bash中執行此操作。我想我正在尋找一個「追加」功能或類似的東西?
更新:我也想問如何檢查零個參數,並指定一個默認的數組值,並且由於下面的答案,能得到這個工作:
if [ "$#" -eq 0 ]; then
myArray=(defaultarg1 defaultarg2)
else
myArray=("[email protected]")
fi
謝謝!很棒!正要問如何檢查零參數並分配一個默認數組值,而$#完全適用於此! – Suman
@kojiro set的含義是什麼 - ,謝謝 – mailzyok
'set'允許你爲範圍設置位置參數。它還可以讓你設置shell選項。你可以執行'set foo',這意味着'$ 1'擴展爲'foo',但是如果你的參數以'set'開頭,將假定你的意思是設置一個shell選項。雙短劃線確保將以下所有參數解釋爲要設置的位置參數。 – kojiro