Estou tentando expandir as variáveis Bash. Pesquisei, mas não tenho certeza de quais são os termos de pesquisa para o que estou tentando fazer. Aqui está o meu código. Duas questões:
- Como obtenho a saída desejada conforme mostrado?
- Qual é a terminologia Bash para descrever o que eu quero aqui?
# Set Library install directories
install_dir_1=~/Desktop/arduino-1.8.4
install_dir_2=~/Desktop/arduino-1.8.5
install_dir_3=~/Desktop/arduino-1.8.5a
x=0
while [ $x -lt 4 ]; do
let x=x+1
install_dir=install_dir_$x
#echo $install_dir
install_dir=$install_dir
#echo $install_dir
dir_Adafruit_SSD1306=$install_dir/libraries/Adafruit_SSD1306/
echo $dir_Adafruit_SSD1306
done
A saída real é
install_dir_1/libraries/Adafruit_SSD1306/
install_dir_2/libraries/Adafruit_SSD1306/
install_dir_3/libraries/Adafruit_SSD1306/
install_dir_4/libraries/Adafruit_SSD1306/
A saída desejada é
~/Desktop/arduino-1.8.4/libraries/Adafruit_SSD1306/
~/Desktop/arduino-1.8.5/libraries/Adafruit_SSD1306/
~/Desktop/arduino-1.8.5a/libraries/Adafruit_SSD1306/
Chama-se variáveis de desreferenciação e, embora possível, não é realmente necessário aqui. Então, sim, você pode usar a mesma abordagem e usar a desreferenciação conforme mostrado abaixo:
Mas isso é realmente muito complexo. Aqui está uma versão simplificada que faz a mesma coisa: