如何增加已在 bash 中定义的变量?这就是我的意思:
ID1="YAY1"
ID2="YAY2"
for (( c=1; c<=3; c++ ))
do
if [ "$SOMEOTHERVAR" = "ID$c" ]; then BLAH; fi
done
问题是,当它增加已经定义的变量进行比较时,它认为 ID$c 等于字符串 ID1,而不是 ID1 等于 YAY1,因此 if 语句总是评估为 false。我希望这是有道理的。
谢谢您的帮助!
** * ***更新* ** * **
感谢大家的帮助。最干净的解决方案是使用与切割混合的单个阵列。可能不是最干净的方式,但效果很好。下面是一个片段:
# CONTACTS
declare -a EMAIL
EMAIL[1]="JS:jsmith@example.com"
EMAIL[2]="JD:jdoe@example.com"
EMAIL[3]="JK:jkennedy@example.com"
# FUNCTIONS
function EMAIL {
for i in "${!EMAIL[@]}"; do
POINTER="`echo ${EMAIL[$i]} | cut -d":" -f1`"; ADDRESS="`echo ${EMAIL[$i]} | cut -d":" -f2`";
if [ "$POINTER" = "$PEMAIL" ]; then TO="$ADDRESS"; fi
if [ "$POINTER" = "$SEMAIL" ]; then CC="$ADDRESS"; fi
done
}
PEMAIL 和 SEMAIL 是在脚本的另一部分从数据库中提取的比较器。