Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash-传递没有正确结果的值_Bash_Pass By Value - Fatal编程技术网

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

bash-传递没有正确结果的值,bash,pass-by-value,Bash,Pass By Value,我的代码如下: 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="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
显示它,但没有结果

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

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

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

您的代码看起来不整洁,例如,您的双
然后
和缺少
fi
怎么办?您是否希望
ping
自动退出?它们只是片段,以确保我只显示最重要的部分