【问题标题】:bash - pass by value with no correct result [duplicate]bash - 按值传递但没有正确的结果[重复]
【发布时间】:2021-08-05 16:26:11
【问题描述】:

我的代码如下:

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(),该值就会丢失。 我做错了什么?

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

【问题讨论】:

  • 你的代码看起来不整洁,例如你的双then和缺少fi有什么关系?您是否希望 ping 自行退出?
  • 他们只是 sn-ps 以确保我只显示最重要的

标签: bash pass-by-value


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 2017-05-16
    • 2014-04-14
    • 1970-01-01
    • 2016-05-02
    • 2018-05-22
    • 2017-01-19
    • 1970-01-01
    相关资源
    最近更新 更多