0

Unix shell 脚本:

我有 7 个函数需要作为命令行输入执行,我尝试使用下面的代码它没有执行函数。

if [ "$VAL" == "1" ]
then
fun1
elif [ "$VAL" == "2" ]
then
fun2
elif [ "$VAL" == "3" ]
then
fun3
elif [ "$VAL" == "4"]
then
fun4
elif [ "$$VAL" ==" 5" ]
then
fun5
elif [ "$VAL" == "6" ]
then
fun6
elif [ "$VAL" == "7" ] then
fun7
else
echo -e "Invalid input.............\n"
Help
  exit
fi

输出:

Usage:  ./script  $VAL
#   ./script  2
Invalid input...........
4

2 回答 2

0

老实说,我在您的代码中看不到任何错误(除了$$VAL与 5 相比)。你确定VAL等于2吗?也许尝试以这种方式调用您的代码,./script 2而不是./script $VAL. 还有什么我会推荐使用case声明:

 case "$VAL" in
 "1")
    fun1
    ;;
 "2")
    fun2
    ;;
 "3")
    fun3
    ;;
 *)
    echo -e "Invalid input.............\n" 
    ;;
 esac
于 2013-01-28T08:45:40.717 回答
0

嗨,这是linux中的函数代码,希望对您有所帮助

func() 
{
if [ thisconditionistrue ]
then
a=100
else
a=500
fi
}

#CallerScript
a=50
passme=Thisisvalue
func $passme 
于 2013-01-28T09:59:55.000 回答