linux基础之Shell Script
1 Shell Scipt
使用指令和基本程序设计结构写成的程序,可以完成复杂的处理流程
1.1 程序书写
第一行 #!/bin/bash 说明使用的shell类型,不同shell语法可能不同,所以要说明使用的是哪种shell
其它#开始的表示注释,注释一般需要说明
程序功能
版本历史
作者及联系方式
设置好PATH变量,以便直接可以调用相应路径下的命令
程序主体部分
exit 0 表示程序执行成功,向环境返回0
1.2 程序执行
bash $bash sh01.sh #如果用sh sh01.sh而sh又不是指向bash,那么sh01.sh内的语法就会不一致,因为用 #sh去解释了bash语法写的shell script,针对这个程序,如果 #$type sh #得到sh is hashed (/bin/sh) #那么会输出-e Hello world!,而非Hello world!
注:用bash和用source的不同在于,用bash执行时,shell script其实是在在父程序bash下新建了一个 bash子程序,这个子程序中执行,当程序执行完后,shell script里定义的变量都会随子程序的结束而消失, 而用source执行时,是在父程序bash中执行,shell script里定义的变量都还在。
2 简单Shell练习
2.1 例1 接收用户输入
调用:
2.2 例2 按日期建立相似名字的文件
调用:
3 判断式
3.1 测试文件是否存在
test -e filename会根据filename是否存在返回0或1,再交由echo显示结果:
3.2 test常用选项
3.2.1 文件类型
3.2.2 权限
-r file :file是否有读的权限
3.2.3 文件新旧比较
-nt file1 file2 : file1 是否比 file2新
3.2.4 整数,字符串,多重条件判断
-z string: string是否为空
例:输出指定文件类型及属性
调用:
Filename:sh01.sh
The filename:sh01.sh is a regular file
And Permissions are :readable writable executable
</div>
3.3 使用[]判断
测试文件是否存在
注意[]内空格必须有
这种方法和test的test -e "sho1.sh" ; echo $? 是一致的
4 Shell Script 参数
e

