我必須執行一個必須測試變量是否已在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
}
我不明白爲什麼我得到here
即使我輸入./test toto
或別的東西。
是否需要使用特定的命令,例如grep
?
相關:[如何測試一個變量是否在4.2版之前的Bash中使用名詞集shell選項定義?](http://unix.stackexchange.com/a/56846/40596) – fedorqui 2014-11-24 15:20:17
似乎沒有人已經說明了這一點,但如果'$ 1'不存在,'$ 1'_ID「'將評估爲'_ID''。因此,將始終是'!='「'' – 2017-01-23 15:58:17