2016-05-25 4 views
0

Я хочу, например, написать все аргументы, используя для цикла, когда я пишу:Bash аргументы записи, используя цикл

for ((i=1; $i <= $#; i++)) ; do 
    echo "${$i}" 
done 

или

echo "$$i" 

он не работает. Я не могу также сделать цикл:

for arg in "[email protected]" 

Потому что я хочу, чтобы иметь доступ ко следующему аргументу, если ток, например, «-n». (Моя строка аргументов будет равна: -n 10 -k 50 -s 4)

+3

Использовать косвенное выражение 'echo '$ {! I}" .http: //www.tldp.org/LDP/abs/html/ivr.html. Также это 100% дубликат, но я не могу беспокоиться об этом, если кто-то еще захочет. – 123

ответ

0

Почему вы не используете getopts?

while getopts ':n:k:s:' opt 
do 
case "$opt" in 
n) echo "option n with $OPTRARG" 
    ;; 
k) echo "option k with $OPTRARG" 
    ;; 
s) echo "option s with $OPTRARG" 
    ;; 
*) echo "Bad usage" 
esac 
done 
Смежные вопросы