Bash, сегмент списка аргументов

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

list[2:]

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

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

но это менее, чем изящно. Был бы быть "надлежащим" путем?

41
задан Mike 7 November 2013 в 19:59
поделиться

3 ответа

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

echo "${@:2}"

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

например

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

$ ./shell.sh 1 2 3 4
2 3 4
70
ответ дан 27 November 2019 в 00:35
поделиться

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

4
ответ дан 27 November 2019 в 00:35
поделиться

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
ответ дан 27 November 2019 в 00:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: