if

help if可以看看if的用法

if ls -l / ;then echo "ok";else echo "no" ;fi

for

for ((i=0;i<10;i++));do echo $i; done

help for里面的words:asd asd asd,word:asd

for i in aaa fff ssss aaaa;do echo $i;done

命令seq,比如seq 33:从1输出到33

for i in `seq 33`;do echo $i;done

while

help while

练习

先统计一下,并用数值法并倒过来排个序:du -a | sort -nr

思想:把统计结果逆序排列,然后开始循环,把第一个是文件的输出即可。

编程:

oldIFS=¥IFS:bash是通过IFS里面的值来进行切割的,之前存的是空格,换行,制表符,这次要换成换行符,不过先保存现场。

IFS=$'\n':加单引号是为了使得\和n合为一体,$表示取它的值

接着``里面是按照逆序r排列的,对用户输入的路径的所有文件和目录的大小信息的数据集,增强for循环遍历里面的每一个元素。

for i in `du -a $1 | sort -nr`; do

  echo $1

  filename=`echo i | awk '{print $2}'` : 利用echo将内容输到awk的输入流,awk对传进来的树数据做切割,打印第二列,最后赋值给filename

  test里面的-f可以检查是否为文件,可以help test

  if [ -f $filename ] ;then

    echo $filename

    exit 0 :找到最大的文件后就打印并退出小bash

  fi

done

IFS=$oldIFS :恢复现场

练习

读一个文件的每一行,并打印,最后打印总共多少行。

脚本:

答案1:

name=0

oldIFS=$IFS

IFS=$‘n‘ 此处为单引号

for i in `cat read.txt`;do 此处为反引号,告诉它是命令

  echo i

  ((num++))

done

echo num:$num

IFS=$oldIFS

答案2:

num=0

lines=`cat data | wc -l`  : 拿到行数,且不显示文件名

for ((i=0;i<ilnes;i++));do

  line=`head -$i data | tail -1` :先输出前i行,然后取其中的倒数后一行,给变量line(tail是取倒数后几行的)

  echo line

  ((num++))

done

echo num:$num

答案3:

num=0

先执行一次done后面的,把data文件里的数据放到read的输入流里面,然后read一次循环一次

while read line ;do

  echo $line

  ((num++))

done < data

echo num:$num

答案4:

export num=0

cat data | (while read line ;do 此处将cat的结果放到输入流里面,注意此处管道创建了2个进程,()又创建了1个子进程,若不加小括号,则done;后面的实际上已经返回父进程了

  echo $line

  ((num++))

  done; echo num:$num )

答案5:

export num=0

cat data | {while read line ;do

  echo $line

  ((num++))

  done; echo num:$num ;} 此处换成大括号了,且末尾得有;,这次总共只创建了2个进程了

$#和$@区别

echo $# == echo $@

for i in "$*";do 此时$*会把参数列表作为1个元素

for i in "$@";do 此时$@会把参数列表的内容分别作为元素

随机推荐

  1. [转载]关于Pretrain、Fine-tuning

    [转载]关于Pretrain.Fine-tuning 这两种tricks的意思其实就是字面意思,pre-train(预训练)和fine -tuning(微调) 来源:https://blog.csdn ...

  2. 个人学习HTML以及CSS所得体会

    拥有自己样式的浏览器: 苹果,欧朋,谷歌,IE,火狐 form标签<form></form> 表单属性: 1,action主要同来规定表单的作用,提交到处理器上面处理URL,默 ...

  3. 针对nginx应用场景的配置 知识整理

    本文为转载,原文链接 前言 原本想写整理一篇针对nginx应用场景的相应配置,但发现已经有人整理了,而且写得非常不错,特意转过来 概论 Nginx 是一款面向性能设计的 HTTP 服务器,能反向代理 ...

  4. 【jekins】jenkins构建触发

    一.定时构建的语法 * * * * *(五颗星,中间用空格隔开)第一颗*表示分钟,取值0~59第二颗*表示小时,取值0~23第三颗*表示一个月的第几天,取值1~31第四颗*表示第几月,取值1~12第五 ...

  5. Delphi 类的特性

  6. c语言之一个简单的《学生教师管理系统》小结记录(二)

    本篇博文用来记录学生头/教师文件建立以及结构体链表创建及链表相关操作 首先是头文件的建立 头文件包含学生结构体以及链表结构 1.学生结构体建立 /****定义学生信息******/ typedef s ...

  7. 六:MVC数据建模(增删改查)

    今天我们来学习mvc增删改查等操作(试着结合前面学习的LINQ方法语法结合查询) 我创建了一个car的数据库,只有一个Cars表 表里面就几个字段 插入了一些数据 想要创建一个ADO.NET实体数据模 ...

  8. LoadRunner(7)

    一.参数化策略 1.Select next row(How? 如何取?)取值方式 选择下一行 1)Sequential:顺序的 每个VU都从第一行开始,顺序依次向下取值: 数据取完可以从头循环重复使用 ...

  9. 实用:Java基础流计算

    java的流不常用,每次学习完都懂,过了一段时间就全忘了... 记录下一点实用的东西... 需求: 截取文件的前250kb内容 public static void main(String[] arg ...

  10. 模块化开发之Amd规范和Cmd规范

    CMD规范:是SeaJS 在推广过程中对模块定义的规范化产出的. AMD规范:是 RequireJS 在推广过程中对模块定义的规范化产出的 // CMD define(function(require ...