shell中if语句的使用中字符串对比中的坑

阅读更多

一、脚本入下:

       
if [[ $type=="app" ]]; then
                echo '----in app'
                #docker run -d -p $port:8088 --name $project $dockerimage
                docker run -d --name $project -v /root/common/dubbo/bin:/dubbo/bin:Z -v /root/project/$project:/etc/supervisor.d:Z $dockerimage
        else
                echo '----in dubbo'
                #使用host网络模式启动,注意不同dubbo的端口需不同,防止冲突
                docker run -d --net host --name $project -v /root/common/dubbo/bin:/dubbo/bin:Z -v /root/project/$project:/etc/supervisor.d:Z $dockerimage
        fi


二、问题: $type值明明给了app,但是逻辑还是走了else

三、排查发现是if中的==两边没有空格导致的,加空格后解决问题。修改后的脚本
if [[ $type == "app" ]]; then
                echo '----in app'
                #docker run -d -p $port:8088 --name $project $dockerimage
                docker run -d --name $project -v /root/common/dubbo/bin:/dubbo/bin:Z -v /root/project/$project:/etc/supervisor.d:Z $dockerimage
        else
                echo '----in dubbo'
                #使用host网络模式启动,注意不同dubbo的端口需不同,防止冲突
                docker run -d --net host --name $project -v /root/common/dubbo/bin:/dubbo/bin:Z -v /root/project/$project:/etc/supervisor.d:Z $dockerimage
        fi



参考资料: https://www.cnblogs.com/aaronLinux/p/7074725.html

你可能感兴趣的:(shell,脚本)