Shell(1)
原创
©著作权归作者所有:来自51CTO博客作者VickyDu的原创作品,如需转载,请与作者联系,否则将追究法律责任
2010.7.10
Shell是操作系统与用户进行交互操作的界面
Shell脚本程序是Shell命令语句的集合,用于实现特定的功能;
Shell脚本程序保存在文本文件中,可以使用文本处理程序进行阅读和编辑;
Shell脚本程序是由Shell环境解释执行的,不需要在执行前进行编译;
执行Shell程序时,Shell脚本文件需要具有可执行(x)的属性。
文件Shells中保存了Linux系统中可使用的Shell程序列表 /etc/shells
Shell变量的分类:
环境变量:主要是在程序运行的时候需要设置。
特殊变量(系统变量):分为预定义变量和位置变量。在对参数判断和命令返回值判断会使用。
用户变量(本地变量):在编程过程中使用最多。
反引号(`)可用来进行命令替换,执行时先执行反引号中的命令,并把执行结果赋给变量。
用双引号(“)引起来的字串中,变量替换依然有效,因此也称弱引用;此名,使用双引号还能够阻止单词分割。
用单引号(‘)引起来的字串,变量替换将不再进行,因此也被称为强引用。
变量的显示使用echo命令,格式如下:
echo $变量名 或 echo ${变量名}
管道操作符 |
“|”符用于连接左右两个命令,将“|”左边的命令执行结果(输
出)作为“|”右边命令的输入
脚本中应包括的内容:
①脚本运行环境设置 #!/bin/bash
②注释行以#开始 # Clean command history,清除用户命令历史
③脚本语句 history –c
if/then结构用来判断命令列表的退出状态码是否为0(因为在UNIX惯例, 0表示“成功”), 如果成功的话, 那么就执行接下来的一个或多个命令。
整数测试:
-eq 等于 [ "$a" -eq "$b" ]
-nq 不等于 [ "$a" -ne "$b" ]
-gt 大于 [ "$a" -gt "$b" ]
-ge 大于等于[ "$a" -ge "$b" ]
-lt 小于[ "$a" -lt "$b" ]
-le 小于等于[ "$a" -le "$b" ]
字符串测试:
= 等于[ "$a" = "$b" ]
!= 不等于[ "$a" != "$b" ]
< 小于[ “$a” \< “$b” ] ,转义
> 大于 [[ “$a” > “$b” ]]
-z 字符串为"null",长度为零
-n 字符串不为"null"
需注意的是:若使用后-z或-n测试时,字符串最好用双引号引起
来。[…]中的大于号和小于号需要转义,[[…]]则不需要。
文件测试:
-f file 测试文件是否为普通文件
-d dir 存在且为一个目录时为真
-e 判断文件是否存在
-s 判断文件大小是否为0,不为0时返回真
组合测试条件:
-a 逻辑与 exp1 -a exp2
如果表达式exp1和exp2都为真的话,那么结果为真。
-o 逻辑或 exp1 -o exp2
如果表达式exp1和exp2中至少有一个为真的话,那么结果为真。
!注意:&&和||如果用来组合测试条件,只能用于[[…]]中,而一般 -a 和 –o 是用在[…]中或test语句中。
shell也可以进行简单的算术运算。格式如下:
$((expression)) 或 $[ expression ]
if条件判断句
① if [ condition-true]
then
command
…
fi
② if [ condition-true]
then
command
…
else
command
…
fi
③ if [ condition1 ]
then
command
…
elif [ condition2 ]
then
command
…
else
command
…
fi
!注意:if/then/fi都是独立的语句,若要放在同一行,需要用分号隔开。
case语句:
①case的作用和多个if/then/else语句的作用相同,是它们的简化结构,特别适用于创建菜单
②每句测试行, 都以右小括号)来结尾
③每个条件判断语句块都以一对分号结尾
④case块以esac (case的反向拼写)结尾
case “$variable” in
“$conditional”)
command…
;;
“$condition2”)
command…
;;
esac
上一篇:Linux简单命令介绍1
下一篇:简单命令
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
shell编程(1):shell的定义
shell是一个程序,采用C语言编写,是用户和linux内核沟通的桥梁。它既是-种命令语言, 又是一种
shell linux 编程语言 内核 shell脚本