如果你有Python的list,你想從2到n的元素可以做一些漂亮的像猛砸,參數列表段
list[2:]
我想在Bash中使用的argv類似的東西。我想將所有元素從$ 2傳遞給argc到一個命令。我目前有
command $2 $3 $4 $5 $6 $7 $8 $9
但這不夠優雅。會是「正確」的方式?
如果你有Python的list,你想從2到n的元素可以做一些漂亮的像猛砸,參數列表段
list[2:]
我想在Bash中使用的argv類似的東西。我想將所有元素從$ 2傳遞給argc到一個命令。我目前有
command $2 $3 $4 $5 $6 $7 $8 $9
但這不夠優雅。會是「正確」的方式?
你可以做 「切割」,以及,[email protected]
得到所有的參數在bash。
echo "${@:2}"
獲得第二個參數起
如
$ cat shell.sh
#!/bin/bash
echo "${@:2}"
$ ./shell.sh 1 2 3 4
2 3 4
script1.sh:
#!/bin/bash
echo [email protected]
script2.sh:
#!/bin/bash
shift
echo [email protected]
$ sh script1.sh 1 2 3 4
1 2 3 4
$ sh script2.sh 1 2 3 4
2 3 4
你也應該把它包在雙引號,以避免出現問題在使用'./shell.sh 1 2「多字參數」4 5「調用''echo'$ {@:2}''時可以正常工作。 – 2010-03-06 19:08:15
值得注意的是,這也支持長度,即''$ {@:start:len}「' – Dan 2013-11-18 10:48:29
如果'$ {@:2}'爲空,您還可以給出一個默認值嗎? – Gabriel 2015-08-07 21:22:24