博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[shell脚本]条件判断和循环
阅读量:6795 次
发布时间:2019-06-26

本文共 1143 字,大约阅读时间需要 3 分钟。

基本语法

1、条件判断

if [ condition1 ];then    command 1elif [ condition2 ];then    command 2else    command3fi

写成一行:if [ condition ]; then command; fi

注意:
(1)if .. fi标志着判断语句的开始和结束;
(2)[ ]是条件判断符,注意条件语句和判断符首末都需要空出一格;

2、循环

for循环

for var in item1 item2 item3;do        command1    command2done

类C风格for循环

for((i=0;i<3;i++));do    command1    command2done

更详细的参考:

shell流程控制:
shell循环:

实例

1、判断

(1)数值判断
1254006-20181105142401974-50246831.png

#保证脚本传入参数个数正确再执行后面部分if [ $# -lt 3 ];then    echo "lack parameters!"    exit 1fi

(2)字符串判断

1254006-20181105143323835-977994430.png
(3)文件检测
1254006-20181105143403442-541831629.png

if [ -s ../work/file1 && -s ../work/file2 ];then    python run.py    if [ ${?} -eq 0 ];then        exit 0    else        echo "error"        exit 1    fifi

2、循环

(1)数字循环

sum=0for i in  {1..19}; do    $sum = $sum + $i    echo "sum=$sum"done

(2)字符串循环

list = "Hello world! "for i in $list;do    echo $idone

(3)文件路径循环

for file in /home/doc/shell/*.shdo    echo $filedone

(4)用循环实现多条类似命令并行

FILE_LIST="file1 file2 file3 ";for $file in $FILE_LIST;do{    $HADOOP fs -cat $HADOOP_OUT/$file/* > localpath/$file.txt}donewait

说明:haodoop fs -cat命令需要花费一定的时间,因此当需要cat多个路径下的文件时,可以通过for循环让它们并行节省时间,wait命令保证for循环中的命令都执行完后,再执行后续部分。

转载于:https://www.cnblogs.com/surimj/p/9885264.html

你可能感兴趣的文章
linux nginx 指定目录不可执行php文件
查看>>
django环境搭建
查看>>
共享 iOS沙盒文件管理
查看>>
MIME
查看>>
CMPopTipView
查看>>
windows系统下安装虚拟机-mac系统-视频教程
查看>>
spring ContentNegotiatingViewResolver---负责调用不同的j
查看>>
嵌入式Linux C编程 03
查看>>
华为聚簇表聚簇索引原理
查看>>
数据挖掘笔记
查看>>
Nginx配置性能优化
查看>>
Ubuntu下安装numpy and matplotlib
查看>>
Spring 统一管理输出
查看>>
LEXUS OPENCART 自适应主题模板 ABC-0019-01 HIGHLIGHTED FEA
查看>>
设置ListView页眉注意事项
查看>>
ubuntu 更新出错
查看>>
nginx学习笔记(8)虚拟主机名---转载
查看>>
elasticsearch6 java 操作手册
查看>>
[LeetCode] Symmetric Tree
查看>>
jroo国际化实现方式
查看>>