shell编程基础(总体轮廓)

0.关于shell编程
大一学shell编程的时候没有时间深入,而且不做笔记,只是看看,这样很不好,过没几天就忘了,等于没学。这段时间一直在学曾经中断了的算法,但是从早到晚一直看这个也不行。感觉强度有点高,所以决定利用时间间隙把shell编程认真学一遍。就当做是放松大脑吧。
1.如何让写好的shell脚本运行?
答:chmod +x 文件名    或    .文件名。为了方便,可以把脚本文件所在目录加入PATH.PATH=$PATH:文件完整路径
另一个运行脚本的方法:把它作为一个参数传给bash命令。bash 文件名
2.shell脚本的参数
(1)位置参数:$N    N为自然数。$0是程序名字,$1是第一个参数
(2)内部参数:
$0:程序名
$#:参数总数目
$?:上一个代码或shell程序的返回值。正常返回0.
$*:所有参数组成的字符串(不包括$0,所有指的是从$1开始的参数)
3.test命令:
(1)字符串比较:
=    比较字符串是否相同,相同为‘是’
!=    不同为‘是’
-n    字符串长度大于0,则为‘是’
-z    字符串长度等于0,则为‘是’
(2)数字比较
-eq        相等
-qe        大于等于
-le        小于等于
-ne        不相等
-gt        大于
-lt        小于
(3)逻辑操作
!    逻辑取反
-a    逻辑与
-o    逻辑或
(4)文件操作

-d        对象存在且为目录,返回‘真’

-f      对象存在且为文件   返回‘真’

-L      对象存在且为符号链接,返回‘真’

-r      对象存在且可读,返回‘真’

-s        对象存在且长度非0,返回‘真’

-w        对象存在且可写,返回‘真’

-x        对象存在且可执行,返回‘真’

file1 -nt(-ot) file2        文件1比文件2 新(旧)

4.循环结构
(1)for循环
for  变量   in  列表
do
操作
done

列表:for循环内部要操作的对象,可以是字符串也可以是文件,如果是文件,则为文件名
(2)while循环
while    表达式
do
操作
done
(3)until循环
until    表达式
do
操作
done
重复执行do和done之间的操作直至表达式成立
5.条件语句
(1)if
if    表达式1    then
操作
elif    表达式2    then
操作
elif    表达式3    then
操作
……
else
操作
fi
(2)case
case 字符串    in
value1)    操作;;
value2) 操作;;
value3|value4) 操作;操作;操作;;
[abcdef])操作;;
*) 操作;;
esac
当字符串为指定值时执行相应语句,*)相当于default
注意:value处可以使用正则,每种情况可以对应多个值(用|隔开),每种情况可以有多条语句(用;隔开),最后一句后两个分号。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>