Bash, сегмент списка аргументов - PullRequest
39 голосов
/ 06 марта 2010

Если у вас есть список в Python, и вы хотите, чтобы элементы от 2 до n могли сделать что-то хорошее, например,

list[2:]

Я бы хотел что-то подобное с argv в Bash. Я хочу передать все элементы из $ 2 в argc команде. У меня в настоящее время есть

command $2 $3 $4 $5 $6 $7 $8 $9

но это не так элегантно. Был бы "правильный" способ?

Ответы [ 3 ]

67 голосов
/ 06 марта 2010

вы также можете выполнять "нарезку", $@ получает все аргументы в bash.

echo "${@:2}"

получает 2-й аргумент вперед

например,

$ cat shell.sh
#!/bin/bash
echo "${@:2}"

$ ./shell.sh 1 2 3 4
2 3 4
4 голосов
/ 06 марта 2010

script1.sh:

#!/bin/bash
echo $@

script2.sh:

#!/bin/bash
shift
echo $@

$ sh script1.sh 1 2 3 4
1 2 3 4 
$ sh script2.sh 1 2 3 4 
2 3 4
4 голосов
/ 06 марта 2010

Храните $1 где-нибудь, затем shift и используйте $@?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...