перебрать список аргументов в оболочке Linux - PullRequest
7 голосов
/ 01 октября 2011

Я хочу перебрать список аргументов в оболочке, я знаю, как это сделать с

for var in $@

Но я хочу сделать это с

for ((i=3; i<=$#; i++))

Мне это нужно, потому что первые два аргумента не будут включены в цикл. Кто-нибудь знает, как это сделать? С нетерпением жду вашей помощи.

чэн

Ответы [ 3 ]

10 голосов
/ 01 октября 2011

Это может помочь:

for var in "${@:3}"

для получения дополнительной информации вы можете посмотреть:

http://www.ibm.com/developerworks/library/l-bash-parameters/index.html

4 голосов
/ 01 октября 2011

reader_1000 обеспечивает хорошее заклинание bash , но если вы используете более старую (или более простую) оболочку Bourne, вы можете использовать скрипящий древний (и, следовательно, очень портативный)

VAR1=$1
VAR2=$2
shift 2
for arg in "$@"
...
1 голос
/ 05 октября 2015

Хотя это старый вопрос, есть другой способ сделать это.И, может быть, это то, что вы просите.

for(( i=3; i<=$#; i++ )); do  
    echo "parameter: ${!i}"  #Notice the exclamation here, not the $ dollar sign.
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...