Bash
Bash - 拆分引用的參數
我有一個使用兩個參數呼叫的腳本:
./script.sh a b
我目前正在閱讀它們 $ 1 and $ 2(如
cd $1
)。我的問題是,當使用帶引號的參數呼叫腳本時,輸出需要相同:./script.sh "a b"
如果我理解正確,它將兩個參數都傳遞給
$1
變數。有沒有一種簡單而乾淨的方法來做到這一點,或者我是否需要檢查第一個參數是否有空格,將其拆分為一個數組,將數組的一部分傳遞給兩個單獨的變數,然後在整個腳本中使用它們?
最簡單的方法是將其放在腳本的頂部:
set -- $*
這將重新擴展參數列表,因此參數中的任何空格都將成為新參數之間的分隔符。
如果您的參數中有非常複雜的引用(例如,引用的引號),可能會出現一些複雜的行為,但我的猜測是這不太可能發生。