linux中if判断 -a 何时看做判断文件存在, 何时看做逻辑运算

(1)比较两个只= ( -a 看做逻辑与)
(2)== 判断存在 ( -a 看做判断文件是否存在)

例如:
(1) 条件判断组合 ( -a 看做逻辑与)
注:[] 与[[ ]] 的区别:[[ ]] 中逻辑组合可以使用 && || 符号
而[] 里面逻辑组合可以用 -a -o

[root@mini ~]# if [ a = b && b = c ]; then echo ok;else echo notok;fi
-bash: [: missing `]'
notok

[root@mini ~]# if [ a = b -a b = b ]; then echo ok;else echo notok;fi
notok
[root@mini ~]# if [ a = b -o b = b ]; then echo ok;else echo notok;fi
ok

[root@mini ~]# if [[ a = b && b = b ]]; then echo ok;else echo notok;fi
notok
[root@mini ~]# if [[ a = b || b = b ]]; then echo ok;else echo notok;fi
ok

(2)-a在==号后面( -a 看做判断文件是否存在)
这是一键安装的脚本里的代码
https://github.com/wangsenfeng/oneStepInstall
installProfile.sh

#!/bin/bash

#如果非安装用户,退出安装
if [ $USER != "root" ]; then
echo "这个脚本必须用root执行!!!"
exit
fi

#获取本sh文件的绝对路径
readonly INITDIR=$(readlink -m $(dirname $0))

#加载配置文件
source $INITDIR/init.conf
#配置环境变量
SOFT_HOME=$SOFT_INSTALL_DIR/$INSTALL_SOFT
SOFT_HOME_PROFILE=$(echo $INSTALL_SOFT | tr '[a-z]' '[A-Z]')_HOME

if [ -z "`grep "$SOFT_HOME_PROFILE" /etc/profile`" -o -z "`grep "$SOFT_INSTALL_DIR/$INSTALL_SOFT" /etc/profile`" ];
then
        #$INSTALL_SOFT == "jdk"        如果安装的软件是jdk
        #grep "CLASSPATH" /etc/profile    获取/etc/profile文件里的CLASSPATH变量值
        # -a "/etc/profile"        判断一个文件是否存在
        # -z ""   判断双引号的的字符串长度是否为0

    if [ $INSTALL_SOFT == "jdk" -a -z "`grep "CLASSPATH" /etc/profile`" ]; then
        echo "export JAVA_HOME=$SOFT_INSTALL_DIR/$INSTALL_SOFT" >> /etc/profile
        echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
        echo 'export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/profile
    else
        if [ $INSTALL_SOFT != "jdk" ]; then
        echo "export $SOFT_HOME_PROFILE=$SOFT_INSTALL_DIR/$INSTALL_SOFT" >> /etc/profile
        echo 'export PATH=$PATH:$'"$SOFT_HOME_PROFILE/bin" >> /etc/profile
        fi
    fi
fi

init.conf

#安装什么软件?(小写)例子:jdk、hadoop、hive、storm、flume、kafka、hbase、spark、sqoop等
INSTALL_SOFT=storm

#软件下载路径
SOFT_DOWNLOAD_PATH=http://192.168.56.151/hadoop-2.6.0.tar.gz

#安装在哪个目录?
SOFT_INSTALL_DIR=/home/hadoop

#用哪个用户安装?
SOFT_USER=hadoop

这里写图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值