我编写了以下程序来查找有效的shell变量名。当我运行程序时,即使shell变量存在,我也总是得到否定的答案。这是代码:
if [ -n "$(echo $1 | grep "^[_A-Za-z][_A-Za-z0-9]*$")" ]
then
echo yes
else
echo no
fi
这个if [ -n "${!1}" ]
会起作用。按如下方式调用您的程序:
./program JAVA_HOME
有关更多信息,请参阅其他问题。