linux中if判断 -a 何时看做判断文件存在, 何时看做逻辑运算
(1)比较两个只=( -a 看做逻辑与)(2)==判断存在( -a 看做判断文件是否存在)例如:(1) 条件判断组合( -a 看做逻辑与)注:[] 与[[ ]] 的区别:[[ ]] 中逻辑组合可以使用 &&|| 符号而[] 里面逻辑组合可以用-a-o[root@mini ~]# if [ a = b && b = c ]; then echo
·
(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条内容
所有评论(0)