我正在尝试扩展变量 Bash。我已经搜索过,但不确定我想要做的搜索词是什么。这是我的代码。两个问题:
- 如图所示,如何获得所需的输出?
- 描述我在这里想要什么的 Bash 术语是什么?
# 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
实际输出为
install_dir_1/libraries/Adafruit_SSD1306/
install_dir_2/libraries/Adafruit_SSD1306/
install_dir_3/libraries/Adafruit_SSD1306/
install_dir_4/libraries/Adafruit_SSD1306/
所需的输出是
~/Desktop/arduino-1.8.4/libraries/Adafruit_SSD1306/
~/Desktop/arduino-1.8.5/libraries/Adafruit_SSD1306/
~/Desktop/arduino-1.8.5a/libraries/Adafruit_SSD1306/
它被称为取消引用变量,虽然可能,但在这里实际上没有必要。所以,是的,您可以使用相同的方法并使用取消引用,如下所示:
但这实在是太复杂了。这是一个简化的版本,它做同样的事情: