Ответ 1
Используйте расширение параметра смещения
#!/bin/bash
for i in "${@:2}"; do
echo $i
done
Пример
$ func(){ for i in "${@:2}"; do echo "$i"; done;}; func one two three
two
three
Мой код:
#!/bin/bash
for i in [email protected];
do echo $i;
done;
запустить script:
# ./script 1 2 3
1
2
3
Итак, я хочу пропустить первый аргумент и получить:
# ./script 1 2 3
2
3
Используйте расширение параметра смещения
#!/bin/bash
for i in "${@:2}"; do
echo $i
done
$ func(){ for i in "${@:2}"; do echo "$i"; done;}; func one two three
two
three
Используйте команду shift
:
FIRST_ARG="$1"
shift
REST_ARGS="[email protected]"
Посмотрите Развертывание параметров в man-странице bash.
#/bin/bash
for i in "${@:2}"
do echo $i
done
У вас может быть просто переменная, проверяющая, является ли это первым аргументом с чем-то вроде этого (untested):
#!/bin/bash
FIRST=1
for i in [email protected]
do
if [ FIRST -eq 1 ]
then
FIRST=0
else
echo $i
fi
done