码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本总结

时间:2015-01-22 07:13:20      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:功能性   换行符   标示   用户   

Shell语言的总结 

Shell变量

1.用户自定义  :标示符

              从右向左赋值

              引用变量  $

        清除变量 $unset Z

       例如 $count= 1

          $echo$HOME

2.命令行参数变量

 $0  与键入行的命令行一样,包含脚本文件名

 $1  第一个参数

 $2

 $3

3.位置变量

$@ 包含所含命令行参数 “$1 $2 $3 $4 $5 $6 $7$8¥9”

$* 所包含命令行的参数 “$1 $2 $3 $4 $5 $6 $7$8¥9”

$# 包含命令行参的个数

$? 包含前一个命令的退出状态

$$ 包含正在执行进程的号

 

 

4.环境变量:env

$PATH  shell的搜索路径

$HOME  /etc/passwd文件中列出的用户目录

$IFS 默认为空格 tab及换行符

$TERM 终端类型 常用的有vt100,ansi,vt200.xterm

 

Shell语句

1.说明性语句   #xxxxxxx

2.功能性语句    read(从标准输入读入一行)

          Expr(算术运算命令)

          Test(文件属性 字符串 整数)

.test   $name  -eq   $1

 echo  $?

if   test   -f   $filename

 then 

     ……

 Fi

if  [   -f  $filename  ]

 then 

     ……

 fi

.整数测试

a -eq b 测试是否相等

a -ne b测试是否不相等

a -gt b 测试是否大于b

a -ge b 测试是否大于等于b

a -lt b 测试是否小于b

a -le b 测试是否小于等于b

.文件测试

-d name     测试name 是否为一个目录

-f name 测试name 是否为普通文件

-L name测试name 是否为符号链接

-r name 测试name 文件是否存在且为可读

-w name 测试name 文件是否存在且为可写

-x name 测试name 文件是否存在且为可执行

-s name 测试name 文件是否存在且其长度不为0

f1 -nt f2 测试文件f1 是否比文件f2 更新

f1 -ot f2 测试文件f1 是否比文件f2 更旧

 

三.结构性语句

1. If 模式

     Then

    fi

2.if 表达式

    Then

    命令表

   Else

    命令表

   Fi

记住 -f检测是否为文件  -d检测是否为目录

4.分之语句

Case 字符串变量 in(case只能检测字符串变量)

常量字符串)      //变量名等于 常量字符串则执行命令一

    命令表1

;;

 

常量字符串)

    命令表2;;

 

常量字符串)

    命令表3

;;

 

常量字符串)

    命令表4

;;

  ×)        //*表示其他模式

    命令5

;;

esac

 

 

5循环语句

A)for变量名 in 变量列表

   Do

    命令表

Done

变量依次取单词表中的各个单词,  每取一次单词就执行一次循环体中的命令.  循环次数由单词表中的单词数确定命令表中的命令可以是一条也可以是由分号或换行符分开的多条。如果单词表是命令行上的所有位置参数时可以在for语句中省略 “in  单词表” 部分。直到变量名把变量列表中的所有变量都取到了   循环体才会结束

 

 

6while 表达式

     Do

     命令表    //  表达式为真    执行命令表

Done

while语句首先测试其后的命令或表达式的值,如果为真,就执行一次循环体中的命令,然后再测试该命令或表达式的值,执行循环体,直到该命令或表达式为假时退出循环。

while语句的退出状态为命令表中被执行的最后一条命令的退出状态。

 

7.until 表达式

 Do

    命令表    //表达式为假  直到表达式为真则 退出循环

Done

until循环与while循环的功能相似,  所不同的是只有当测试的命令或表达式的值是假时才执行循环体中的命令表否则退出循环.  这一点与while命令正好相反

 

 

8break  and  continue

配合循环语句  混合使用

break  n  则跳出n;  

continue语句则马上转到最近一层循环语句的下一轮循环上,  

continue  n则转到最近n层循环语句的下一轮循环上

 

 

 

 

 

 

Shell函数

 

shell 函数

 

1.函数定义方式

function_name()

{

命令列表//发挥空间

 

}

 

function function_name() //这种不常用

{

命令列表//发挥空间

 

}

2.函数的参数传递

 

function_name 12 $value ..

 

12:函数体内引用12 ,用 $1 表示   

value:函数体内引用 value ,用 $2 表示

 

 

3.函数返回值调用

 代表函数的返回状态 :$?

 

 1)有 return 的函数 $? 表示 return 的值

 2)没有 return 的函数,$? 函数体内最后一条指令的返回状态

 

4.函数输出内容引用

通过反单撇号来引用函数输出,一般为字符串

count=`function_name $value`

 

5.函数的返回值

Fun $value

Echo $?

 

 

Shell变量的作用域

1.局部变量   作用于函数体内

    关键字 local

2.全局变量 作用于脚本内部任何地

         初始化以后的该变量的内容  否则为空

Count= 5

3.独立于脚本文件外的

   关键字 export



本文出自 “9808690” 博客,请务必保留此出处http://9818690.blog.51cto.com/9808690/1606755

shell脚本总结

标签:功能性   换行符   标示   用户   

原文地址:http://9818690.blog.51cto.com/9808690/1606755

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!