设为首页 加入收藏

TOP

Shell 脚本常用命令(三)
2017-10-16 18:18:53 】 浏览:7511
Tags:Shell 脚本 常用 命令
$i $Sum

     改动后的程序运算结果和上面是一样 但程序比上面的要简练  

     在这个循环中还可以以until做为测试条件 它正好与while测试的条件相反,也就是当条件为假时将继续执行循环体内的语句,否则就退出循环体,下面还用这个例子.  

Sum=0  
i=0  
until [ $i = "100" ]  
do  
    i=`expr $i + 1`  
    Sum=`expr $Sum + $i`  
done  
echo $i $Sum  

    当i不等于100时循环 就是当条件为假时循环,否则就退出,而第一个例子是当i不等于100 时循环,也就是测试条件为真时循环. 

  8.4  for

  8.4.1     枚举用法

  8.4.1.1    格式

for 变量 in 名字列表  
do  
    命令列表  
done 

  8.4.1.2    格式

for n in {1..10}
do
    echo $n
done
for letter in a b c d e;
do
    echo $letter
done

  8.4.2     文件用法

  8.4.2.1    格式

for file in *
do
    echo $file
done

      例子

for File in a1 a2 a3 a4 a5  
do  
    diff aa/$File bb/$File  
done 

  8.4.3     累加格式

for (( i=1;$i<10;i++))
do
    echo $i
done
for(( i=1;$i<10;i=$[$i+1’ ])
do
    echo $i
done

  8.5  其他循环控制语句

    break 命令不执行当前循环体内break下面的语句从当前循环退出.  
    continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行.

  8.6  逻辑判断的表达

    一、判断文件的属性  

    格式:-操作符 filename  

-e 文件存在返回1, 否则返回0  
-r 文件可读返回1,否则返回0  
-w 文件可写返回1,否则返回0  
-x 文件可执行返回1,否则返回0  
-o 文件属于用户本人返回1, 否则返回0  
-z 文件长度为0返回1, 否则返回0.  
-f 文件为普通文件返回1, 否则返回0  
-d 文件为目录文件时返回1, 否则返回0  

    二、测试字符串  

字符串1 = 字符串2 当两个字串相等时为真  
字符串1 != 字符串2  当两个字串不等时为真  
-n 字符串        当字符串的长度大于0时为真  
-z 字符串      当字符串的长度为0时为真  
字符串        当串字符串为非空时为真  

    三、测试两个整数关系  

数字1 -eq 数字2     两数相等为真  
数字1 -ne 数字2     两数不等为真  
数字1 -gt 数字2     数字1大于数字2为真  
数字1 -ge 数字2     数字1大于等于数字2为真  
数字1 -lt 数字2     数字1小于数字2为真  
数字1 -le 数字2     数字1小于等于数字2为真  

    四、逻辑测试  

-a         与  
-o        或  
!        非 

  9、shell中的表达式

  9.1  shell 输出重定向

  9.1.1     管道  |

    就管道符前的命令的输出作为管道符后的命令的输入。

       ls | grep ‘.txt’

    将ls的输出作为grep 的输入。 grep从输入中找出所有包含.txt的行。

  9.1.2     输出  >

    将右尖括号前的命令的输入重定向到尖括号后的文件中。

    例如:

      ls *.sh > list.txt

    将当前目录下所有末尾名为sh的文件的列表写入到list.txt

  9.1.3     输入 <

    将左箭头后面的文件作为左箭头前的命令的输入。

    例如:

      grep “a” < test.sh

    将test.sh中找到所有包含a的行

  9.1.4     错误输出重定向

    默认bash有3个标准输入输出设备。

      0 标准输入

      1 标准输出

      2错误输出

    如果执行脚本的时候发生错误,会输出到2上。

    要想就将错误的输出也输出在标准输出上,需要重定向。

    例如:

      ./test.sh > a.log 2>&1

    后面2>&1就是将标准错误的输出重定向到标准输出上。

  9.2  tee

  9.2.1     将此命令的输入分叉,一支输出到屏幕一支可以重定向到其他位置。

    例如: ./test.sh | tee >a.txt 2>&1

    运行test.sh,通过tee输出到a.txt,同时屏幕上可以看到输出。并且将错误输出重定向到标准输出( 2>&1 )

  9.3  cpio

  9.3.1     文件或目录打包

  9.3.1.1    含子目录打包

    find . -name '*.sh' | cpio -o > shell.cpio

    将当前目录及其子目录下的sh文件打包成一个文件库为shell.cpio。 

  9.3.1.2    不含子目录的打包

    ls *.sh | cpio -o > shell.cpio

    将当前目录下的sh文件(不含子目录)打包成一个文件库为shell.cpio。 

  9.3.2  压缩

    文件打包完成后,即可用Unix中的compress命令(/usr/bin下)压缩打包文件。对一般的文本文件,压缩率较高,可达81%。

    例如:compress shell.cpio则将文件库压缩为shell.cpio.Z(自动添加.Z并删除shell.cpio )。 

  9.3.3 解压

    uncompress shell.cpio.Z则自动还原为shell.cpio。 

  9.3.4 解包展开

    将按原目录结构解包展开到当前所在目录下。若以相对路径打包的,当解包展开时,也是以相对路径存放展开的文件数据;若以绝对路径打包的,当解包展开时,也是以绝对路径存放展开的文件数据。因此注意若为相对路径,应先进入相应的目录下再展开。 

     cd /u1

    cpio –id < shell.cpio 解压到当期目录。 

    cpio –iud < shell.cpio则文件若存在将被覆盖,即强制覆盖。 

    cpio –id < shell.cpio env.sh 解压缩env.sh

  9.3.5 显示包内的文件

    cpio –it < shell.cpio  

  9.4  exec

  9.4.1     将此命令后的参数作为命令在当前的shell中执行,当前的shell或者脚本不在执行。

    例如: exec ls

    当前进程替换为ls,执行结束后就退出了。

    例如:在a.sh 中包含

    exec b.sh 则当a.sh 执行到此句后,被b.sh替换,a.sh中此句后的语句不

首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇centos7下git安装及使用(Capistr.. 下一篇在ubuntu16.04中一键创建LAMP环境

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目