我正在尝试使用for循环确定每个系统中的现有HDD,如下所示,问题是当我尝试使用以下代码设置变量时,我得到sda = true:command not found。这样做的正确方法是什么?
#!/bin/bash
for i in a b c d e f
do
grep -q sd$i /proc/partitions
if [ $? == 0 ]
then
sd$i=true
else
sd$i=false
fi
done
答案 0 :(得分:3)
您需要使用数组或declare
:
declare sd$i=true
答案 1 :(得分:2)
在这种情况下我会使用数组。例如:
$ i=a
$ sd[$i]=true
$ echo ${sd[a]}
true
正如另一张海报所说,如果你想在没有数组的情况下这样做,你可以使用像declare sd$i=true
这样的语法来制作局部变量。如果要创建全局变量,请使用export sd$i=true
。
答案 2 :(得分:0)