微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash - 按值传递没有正确结果

如何解决bash - 按值传递没有正确结果

我的代码如下:

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

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

我尝试在函数 "$1" 中通过 '$1'$@$1${1} o sendMail() 显示它,但没有结果

解决方法

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

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

推荐:使用 shellcheck 来消除这些明显的不良做法。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。