Я хочу повторить и распечатать все значения в командной строке, начиная с a, а не из parm1
Ответ 1
Это должно сделать это:
#ignore first parm1
shift
# iterate
while test ${#} -gt 0
do
echo $1
shift
done
Ответ 2
Вы можете "срезать" массивы в bash; вместо shift вы можете использовать
for i in "${@:2}"
do
echo "$i"
done
[email protected] - это массив всех аргументов командной строки, ${@:2} - это тот же массив, что и первый элемент. Двойные кавычки обеспечивают правильную обработку пробелов.
Ответ 3
Этот метод сохранит первый параметр, если вы хотите использовать его позже
#!/bin/bash
for ((i=2;i<=$#;i++))
do
echo ${!i}
done