Сбросить переменную с помощью оболочки

Я использую сценарий оболочки для сброса переменной.

 #!/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
}
Другие вопросы по тегам