需要帮助在 bash 中从命令行传递参数

需要帮助在 bash 中从命令行传递参数
#function myfunc
myfunc(){
echo $1
case $1 in

    e)
            a=5
            ;;
    q)
            a=10
            ;;

esac
}

myfunc

我需要以下方面的帮助:

$myfunc.sh e

echo $1什么都没显示。case也不起作用。我做错了什么?

答案1

myfunc调用函数时,您忘记向其传递至少一个参数。因此,您的myfunc.sh脚本应如下所示:

#!/bin/bash

#function myfunc
myfunc(){
    echo $1
    case $1 in
        e) a=5 ;;
        q) a=10 ;;
        *) a='not e or q' ;;
    esac
    echo $a
}

myfunc $1   #in this case you can also use $@ or $* 

更多关于:

相关内容