Bash

Bash - 拆分引用的參數

  • February 22, 2015

我有一個使用兩個參數呼叫的腳本:

./script.sh a b

我目前正在閱讀它們 $ 1 and $ 2(如cd $1)。我的問題是,當使用帶引號的參數呼叫腳本時,輸出需要相同:

./script.sh "a b"

如果我理解正確,它將兩個參數都傳遞給$1變數。有沒有一種簡單而乾淨的方法來做到這一點,或者我是否需要檢查第一個參數是否有空格,將其拆分為一個數組,將數組的一部分傳遞給兩個單獨的變數,然後在整個腳本中使用它們?

最簡單的方法是將其放在腳本的頂部:

set -- $*

這將重新擴展參數列表,因此參數中的任何空格都將成為新參數之間的分隔符。

如果您的參數中有非常複雜的引用(例如,引用的引號),可能會出現一些複雜的行為,但我的猜測是這不太可能發生。

引用自:https://unix.stackexchange.com/questions/186220