Shell编程笔记--条件判断
来源:互联网 发布:python大数据分析实例 编辑:程序博客网 时间:2024/05/17 00:59
条件判断
一、test:
方式1:
方式2:[-d feifei.txt]
test -f feifei.txt 是否为文件
-r、-w、-x 读、写、执行
-s 是否非空
1.1:与或非(a,o,!)
1.2:测试字符串、数字
设置值:name=" feifei "
[ -z name ] 空串
[ -n name ] 非空串
[ name = "feifei" ] 是否相等
[ name != "feifei" ] 不相等
测试数值:
-eq、 -ne
-gt、 -lt
-le、 -ge
加减乘除:+ - \* /
expr 10 + 10 (20)
expr 10 - 10 (0)
expr 10 \* 10 (100)
expr 10 / 10 (1)
i++自增:
i=0
i='expr $i + 1'
-------------------------------------
格式:
-------------------------------
例子:新建一个feifei.sh
执行: ./feifei.sh 10
----------输入一串名称,判断是否包含 feifei---------------------------------
3.2 case的用法
格式:
--------------------------------------------------
输入 1、2 各自输出 1、2
输入 3、4 输出 3|4
输入 5、6 无输出
其他输入 输出 文件名
> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
一、test:
方式1:
test -d feifei.txt 测试feifei.txt是否为目录
方式2:[-d feifei.txt]
echo $? 输出0为是,1为否
test -f feifei.txt 是否为文件
-r、-w、-x 读、写、执行
-s 是否非空
1.1:与或非(a,o,!)
[ -r feifei.txt -a -w feifei.txt ] echo $?判断feifei.txt是否可读写[ -r feifei.txt -o -w feifei.txt ] echo $?判断feifei.txt是否写或可写[ ! -r feifei.txt ] echo $?判断feifei.txt不是可读的
1.2:测试字符串、数字
设置值:name=" feifei "
[ -z name ] 空串
[ -n name ] 非空串
[ name = "feifei" ] 是否相等
[ name != "feifei" ] 不相等
测试数值:
-eq、 -ne
-gt、 -lt
-le、 -ge
二、expr
一般用于整数值,也可用于字符串加减乘除:+ - \* /
expr 10 + 10 (20)
expr 10 - 10 (0)
expr 10 \* 10 (100)
expr 10 / 10 (1)
i++自增:
i=0
i='expr $i + 1'
-------------------------------------
三、if then else / case的判断
3.1 if的用法格式:
if [条件1]then 命令1elif 条件2then 命令2else 命令3fi
-------------------------------
例子:新建一个feifei.sh
#!/bin/shvalue=$1echo $valueif [ $value -eq 10 ] then echo $valueelif [ $value -eq 20 ] then echo $valueelse echo "no value!"fi
执行: ./feifei.sh 10
2.检查在feifei.txt是否找到 字符串 feifei
if grep 'feifei' feifei.txt > /dev/null 2>&1then echo "find it"else echo "not find"fi
----------输入一串名称,判断是否包含 feifei---------------------------------
echo -n "Enter a list of names:"read listif echo $list | grep "feifei" > /dev/null 2>&1then echo "find it"else echo "not find"fi
3.2 case的用法
格式:
case 值 in 模式1)命令1;; 模式2)命令2;; esac
--------------------------------------------------
#!/bin/shecho "Enter a num"read numcase $num in 1) echo "select 1" ;; 2) echo "select 2" ;; 3|4) echo "select 3|4" ;; 5|6);; *) echo "'basename $0'" ;;esac
输入 1、2 各自输出 1、2
输入 3、4 输出 3|4
输入 5、6 无输出
其他输入 输出 文件名
------------------------------------------------------------
" > /dev/null 2>&1"的解释:
/dev/null 代表空设备文件> 代表重定向到哪里,例如:echo "123" > /home/123.txt
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
0 0
- Shell编程笔记--条件判断
- Shell编程笔记--条件判断
- Shell编程笔记--条件判断
- shell编程-条件判断
- shell编程(条件判断与流程控制)学习笔记
- Shell编程之判断条件
- Linux Shell编程-条件判断
- shell编程之条件判断
- Shell编程之条件判断
- 【Linux shell】 Shell编程中的条件判断
- linux:shell 编程 条件判断 以及 判断条件
- SHELL学习笔记----IF条件判断,判断条件
- SHELL学习笔记----IF条件判断,判断条件
- SHELL学习笔记----IF条件判断,判断条件
- SHELL学习笔记----IF条件判断,判断条件
- SHELL学习笔记----IF条件判断,判断条件
- SHELL学习笔记----IF条件判断,判断条件
- SHELL学习笔记----IF条件判断,判断条件
- Shell编程笔记--变量的定义
- 编译对应ARM平台的QT的mysql驱动
- Shell编程笔记--条件判断
- Shell编程笔记--变量的定义
- Shell编程笔记---循环操作
- Shell编程笔记--条件判断
- FAT32文件系统转NTFS文件系统
- Shell编程笔记---循环操作
- 主流主板的启动项快捷键
- FAT32文件系统转NTFS文件系统
- 贪吃蛇
- 主流主板的启动项快捷键
- 装饰模式(Decorator)----结构笔记
- QTableModel的setfilter()函数不能过滤中文和字符串的原因