【发布时间】:2015-09-05 22:11:41
【问题描述】:
EDIT2:@glenn jackman 我认为这会解决它,但它仍然在我的完整脚本中出错。为什么它不起作用?是间接引用的原因吗?
#!/home/$current_user/Desktop/expect
...
COUNTER=0
while [ $COUNTER -lt $num ]; do
let index=COUNTER+1
tmp=user_$index
echo "Changing Password for " ${!tmp}
echo ${!tmp}
sudo passwd ${!tmp}
expect -exact "[sudo] password for $current_user: "
send "$pass\r"
interact
expect -exact "New password: "
send "$password\r"
interact
let COUNTER=COUNTER+1
done
编辑:!或 /$$ 仅用于调用其他变量内的变量。如果变量是字符串的一部分,我需要帮助。
我有一个关于 Bash 中的间接变量引用的简短问题。
eval "\${user_$index\}" #First attempt
echo \$${eval "{user_\$index}"} #Second attempt
基本上我有几个名为“user_num”的变量,其中 num 是一个整数。这些变量中的每一个都包含一个字符串值。我想通过调用变量来调用该字符串值。但是,由于变量内部有一个变量 (num),我似乎无法让它工作。我查看了 Bash 中间接引用的手册页,但它们没有提到另一个变量内部的变量附加到字符串的情况。
TLDR:我的问题是你是怎么做到的:
$(var_$num)
【问题讨论】:
-
$current_user来自哪里?