如何在Linux for循环中设置变量

时间:2011-03-08 19:59:06

标签: bash

我正在尝试使用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

3 个答案:

答案 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)