Сбросить переменную с помощью оболочки
Я использую сценарий оболочки для сброса переменной.
#!/bin/sh
reset_var() {
while [ "$#" -gt "0" ] do
echo "\$1 is $1"
unset $1 done
}
i=50
j= 40
reset_var i j
но это не работает!
цель состоит в том, чтобы сбросить переменную i и j в 0
Есть ли способ сбросить много переменных!
2 ответа
Решение
В вашей ситуации вам не нужен reset_var
функция, просто сделайте:
i=50
j=40
unset i j
То есть, возможно reset_var
функция будет:
reset_var() {
while [ "${#}" -ge 1 ] ; do
unset "${1}"
shift
done
}
У вас есть бесконечный цикл при передаче некоторых аргументов. Ваша функция сброса должна выглядеть примерно так:
reset_var() {
for arg
do
unset ${arg}
done
}