如何在shell脚本中获取/设置变量名称

时间:2015-12-29 08:25:15

标签: shell

我希望所有变量名都在shell脚本中设置。我有一个包含键值对的文件,我从该文件中读取内容并存储/设置为变量。如果变量可用/设置,我想做一些过程,否则我不需要做这些过程。如何实现这一目标。

例如,我在每次迭代中在shell脚本中运行循环,它给出了一个在该命令之前设置的变量。

如果是这样的代码

a=test1
b=test2
c=test3

for i in ???
do
    echo $i
done

然后我想要这样的输出

一 b ç

使用什么命令来实现这一点。

3 个答案:

答案 0 :(得分:1)

您可以在设置变量

之前和之后使用set

e.g:

$ set > aux1
$ c=345
$ set > aux2
$ diff aux1 aux2
57c57
< PIPESTATUS=([0]="141" [1]="0")
---
> PIPESTATUS=([0]="0")
112a113
> c=345

答案 1 :(得分:0)

如果您有这样的变量的预定义列表,那么您可以像这样测试它:

for i in $(echo "a b c"); do
    echo $i
done

答案 2 :(得分:0)

如果我可以帮到你:

#!/bin/sh

#   Define list of tests
LIST_TESTS=`cat list_test.txt`

for TEST in ${LIST_TESTS}
do
    vartest=`echo ${TEST}`
    if [  "${vartest}" = "" ]
    # No Test
      then
        echo "*** WARNING***  Test not found"   
    else
        echo "${vartest} is available"
    fi
done

#   Second Define list of tests
tabTest=('test1' 'test2' 'test3')

i=0
while  [ "${tabTest[$i]}" != "" ]
do
    echo "${tabTest[$i]} is available"
    i=$(($i+1))
done