Ссылка на косвенную переменную Bash
РЕДАКТИРОВАТЬ 2: @glenn Джекман Я думал, что это будет исправить, но это все еще ошибка в моем полном сценарии. Почему это не работает? Это связано с косвенной ссылкой?
#!/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Я не могу заставить его работать. Я просмотрел страницы Man для косвенных ссылок в Bash, но они не упоминают случаи, когда переменная внутри другой переменной присоединяется к строке.
TLDR: Мой вопрос: как ты это делаешь?
$(var_$num)