【发布时间】:2014-11-24 15:14:32
【问题描述】:
我必须执行一个函数,该函数必须测试一个变量是否已在 Bash 中正确定义,并且必须使用其关联值。
例如,这些变量在脚本顶部初始化。
#!/bin/bash
var1_ID=0x04
var2_ID=0x05
var3_ID=0x06
var4_ID=0x09
我想调用名为test的脚本如下:
./test var1
目前实现的功能是:
function Get()
{
if [ $1"_ID" != "" ]; then
echo "here"
echo $(($1_ID))
else
exit 0
fi
}
我不明白为什么即使我输入./test toto 或其他内容,我也会获得here。
是否需要使用特定的命令,例如grep?
【问题讨论】:
-
似乎没有人说过这一点,但如果
$1不存在,$1"_ID"将评估为"_ID"。因此将永远是!= to ""