Мой скрипт принимает пары ключ-значение в качестве аргументов командной строки. Я проверяю, является ли заданное количество аргументов четным или нет. Если даже, я хочу перебрать массив, рассмотрим args[n]
& args[n+1]
как пару (n = 0 to $# - 1)
и выполнить другую команду, которая примет эти два аргумента. Я не могу получить цикл for на месте. Вот мой код -shell: итерация по массиву
#!/bin/sh
usage() {
echo "$0 <property-name> <property-value> [<property-name> <property-value> ...]"
exit 1
}
if [ $# -lt 2 ] ; then
usage
fi
# Should be even number of arguments
if [ $(($# % 2)) -ne 0 ]
echo "Even number of arguments expected."
usage
fi
args=("[email protected]")
COMMAND="/mycommand "
for ### WHAT SHOULD I WRITE HERE??
PROPERTY=${args[$c]}
VALUE=${args[$c + 1]}
COMMAND="mycommand $PROPERTY $VALUE"
## Execute command
done
Не следует, чтобы цикл цикла повторялся n/2 раза, по крайней мере, в первом случае. Я все еще пытаюсь понять вторую часть. – devang
Правда, сообщение отредактировано соответственно –
Спасибо за предложение, я поменяю свой сценарий соответственно. – devang