我有一个使用两个参数调用的脚本:
./script.sh a b
我目前正在通过 $1 和 $2 阅读它们(例如cd $1
)。我的问题是,当使用带引号的参数调用脚本时,输出需要相同:
./script.sh "a b"
如果我理解正确的话,它将两个参数传递给$1
变量。有没有一种简单而干净的方法来执行此操作,或者我是否需要检查第一个参数的空格,将其拆分为一个数组,将数组的一部分传递到两个单独的变量中,然后在整个脚本中使用它们?
答案1
最简单的方法是将其放在脚本的顶部:
set -- $*
然后,这将重新扩展参数列表,因此参数中的任何空格都将成为新参数之间的分隔符。
如果您的参数中有非常复杂的引用(例如,引用的引号),则可能会出现一些复杂的行为,但我的猜测是这不太可能发生。