Linux shell编程——if条件判断
来源:互联网 发布:电脑怎么连接光纤网络 编辑:程序博客网 时间:2024/05/19 01:10
if
then
else
fi
test.sh: line 14: syntax error: unexpected end of fi
if
command
then
if
then
执行失败,返回非0 (grep,没找到匹配)if [ expression_r_r_r
then
then
[ -f "/etc/shadow" ] && echo "This computer uses shadow passwors"
必须:if [ i –ne 0 ]
但支持字符串变量直接if
if [ str ] 如果字符串非0
if (i )
=放在别的地方是赋值,放在if [ ] 里就是字符串等于,shell里面没有==的,那是c语言的等于
[macg@machome ~]$ vi test.sh
echo "input a:"
read a
echo "input is $a"
if [ $a = 123 ] ; then
echo equal123
fi[macg@machome ~]$ sh test.sh
input a:
123
input is 123
equal123
============================逻辑表达式=========================================
if [ ! 表达式 ]
if [ ! -d $num ]
if [ 表达式1
if [ 表达式1
-
表达式与前面的= != -d –f –x -ne -eq -lt等合用
-
逻辑符号就正常的接其他表达式,没有任何括号( ),就是并列
-
注意逻辑与-a与逻辑或-o很容易和其他字符串或文件的运算符号搞混了
左边测变量是否为空,右边测目录(值)是否存在(值是否有效)
:
echo "input the num:"
read num
echo "input is $num"
if [ -z "$JHHOME" -a -d $HOME/$num ]
then
JHHOME=$HOME/$num
fi
echo "JHHOME is $JHHOME"
[macg@mac-home ~]$ sh test.sh
input the num:
ppp
input is ppp
JHHOME is
目录-d $HOME/$num
[macg@mac-home ~]$ sh test.sh
input the num:
ppp
input is ppp
JHHOME is /home/macg/ppp
echo "input your choice:"
read ANS
if [ $ANS="Yes" -o $ANS="yes" -o $ANS="y" -o $ANS="Y" ]
then
ANS="y"
else
ANS="n"
fi
echo $ANS[macg@machome ~]$ sh test.sh
input your choice:
n
y
[macg@machome ~]$ sh test.sh
input your choice:
no
y
为什么输入不是yes,结果仍是y(走then)
因为=被连读了,成了变量$ANS="Yes",而变量又为空,所以走else了
[macg@machome ~]$ vi test.sh
echo "input your choice:"
read ANS
read ANS
if [ $ANS = "Yes" -o $ANS = "yes" -o $ANS = "y" -o $ANS = "Y" ]
then
ANS="y"
else
ANS="n"
fi
echo $ANS[macg@machome ~]$ sh test.sh
input your choice:
no
n
[macg@machome ~]$ sh test.sh
input your choice:
yes
y
[macg@machome ~]$ sh test.sh
input your choice:
y
y
===================以
if test $num -eq 0
then
echo "try again"
else
echo "good"
fi
======================if简化语句=================================
[ -f /var/run/dhcpd.pid ] && rm /var/run/dhcpd.pid
[ -f /usr/sbin/dhcpd ] || exit 0
[ -z "$1" ] && help
[ "$1" = "-h" ] && help
例子
#!/bin/sh
[ -f "/etc/sysconfig/network-scripts/ifcfg-eth0" ] && rm -f /etc/sysconfig/network-scripts/ifcfg-eth0
cp ifcfg-eth0.bridge /etc/sysconfig/network-scripts/ifcfg-eth0
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- Linux shell编程——if条件判断
- linux shell编程if条件判断
- shell编程——if条件判断(转)
- Linux shell if条件判断
- Linux Shell if条件判断
- Linux脚本(shell)编程(五) if 条件判断
- 朋友圈实现图片+文字转发
- C++ Primer 第五版 中文版 练习 13.34 个人code
- centOS防火墙iptables的设置教程
- 【2008IO】#ULR 2 A. Goshtasp, Vishtasp and Eidi
- JDBC批量操作数据库数据的内存限制
- Linux shell编程——if条件判断
- 20141010 N2
- oc 面向对象特性(实例成员变量作用域限定符,类变量和类方法)
- Case learning
- 解决QT 设置中文文字的时候出现乱码
- 说好的数据去哪里了(java-HashSet-HashMap)
- 第二章线性表
- Js正则校验身份证号码
- C#开发的餐饮管理系统总结