Shell 脚本:在 if 语句中定义变量

use*_*938 2 variables shell if-statement

在 shell 程序中,我想在 if 语句中定义一个月份变量,如下所示。但我似乎无法在 if 语句中定义变量 - 我不断收到一条错误消息,提示“未找到命令 'dmonth'”。任何帮助都感激不尽!

    #Enter date:

    echo "Enter close-out date of MONTHLY data (in the form mmdd): "
    read usedate
    echo " "

    #Extract first two digits of "usedate" to get the month number:

    dmonthn=${usedate:0:2}
    echo "month number = ${dmonthn}"
    echo " "

    #Translate the numeric month identifier into first three letters of month:

    if [ "$dmonthn" == "01" ]; then
        dmonth = 'Jan'
    elif [ "$dmonthn" == "02" ]; then 
        dmonth = "Feb" 
    elif [ "$dmonthn" == "03" ]; then 
        dmonth = "Mar" 
    elif [ "$dmonthn" == "04" ]; then 
        dmonth = "Apr" 
    elif [ "$dmonthn" == "05" ]; then 
        dmonth = "May" 
    elif [ "$dmonthn" == "06" ]; then 
        dmonth = "Jun" 
    elif [ "$dmonthn" == "07" ]; then
        dmonth = "Jul" 
    elif [ "$dmonthn" == "08" ]; then 
        dmonth = "Aug" 
    elif [ "$dmonthn" == "09" ]; then 
        dmonth = "Sep" 
    elif [ "$dmonthn" == "10" ]; then 
        dmonth = "Oct"
    elif [ "$dmonthn" == "11" ]; then 
        dmonth = "Nov"
    else 
        dmonth = "Dec" 
    fi

    echo dmonth
Run Code Online (Sandbox Code Playgroud)

Bar*_*den 5

我认为你在处理空格方面遇到了麻烦......它在 Bourne shell 及其衍生中很重要。dmonth="Dec"是一个赋值,其中dmonth = "Dec"是一个以 '=' 和 'Dec' 作为参数的命令。