bash - 按值传递,结果不正确

bash - pass by value with no correct result

我的代码如下:

vpnname="test vpn"
    
booleanCheck(){
    echo 
    if (statement) then
       sendMail 
    }
    
    sendMail(){
    mailsubject = "subject test for - " 
}
    
if ! ping 8.8.8.8 then
then 
    checkIfSendEmail "$@$vpnname"
fi

我倒数第二行的值大大传递给了 booleanCheck(),但是一旦达到 sendMail(),该值就丢失了。 我做错了什么?

我尝试通过 ""''$@ o </code> 在函数 <code>sendMail() 中显示它,但没有结果

所有变量用双引号括起来同时传递这样中间的任何空格都不会被拆分:

booleanCheck(){
    echo ""
    if (statement) then
        sendMail ""
    fi
}

建议:使用 shellcheck 消除这些明显的不良做法。