1.什么是shell脚本
首先它是一个脚本,并不能作为正式的编程语言。因为是跑在linux的shell中,所以叫shell脚本。确切的说shell脚本就是一些命令的集合。
2.写脚本前的一些细节及建议
Shell脚本通常都是以.sh 为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。所以,以后你发现了.sh为后缀的文件那么它可能是一个shell脚本了。test.sh中第一行要以 “#! /bin/bash” 开头,它代表的意思是,该文件使用的是bash语法。如果不设置该行,虽然你的shell脚本也可以执行,但是这不符合规范。 # 表示注释,在前面讲过的。后面跟一些该脚本的相关注释内容以及作者和创建日期或者版本等等。当然这些注释并非必须的,如果你懒的很,可以省略掉,但是我们不建议省略。因为随着工作时间的逐渐过渡,你写的shell脚本也会越来越多,如果有一天你回头查看自己写过的某个脚本时,很有可能忘记该脚本是用来干什么的以及什么时候写的。所以写上注释是有必要的。另外系统管理员并非只有你一个,如果是其他管理员查看你的脚本,他看不懂岂不是很郁闷。
3.shell脚本编程基础
3.1 基本数学运算
[root@localhost sbin]# vim first.sh
[root@localhost sbin]# bash first.sh 5 6
11
[root@localhost sbin]# cat first.sh
#! /bin/bash
##This is my first shell script
##Writen by zhangliang 2016-08-10
echo $[ $1+$2 ]
[root@localhost sbin]#
其中脚本中的$1和$2为shell脚本的预设变量,没有限制的。$0代表脚本本身的名字。
[root@localhost sbin]# sh first.sh 1 2
1 2 first.sh
[root@localhost sbin]# cat first.sh
#! /bin/bash
##This is my first shell script
##Writen by zhangliang 2016-08-10
echo "$1 $2 $0"
上部中的“sh first.sh 1 2”命令其实一般需要有执行权限x 如没有则可用# chmod + first.sh来添加。
3.2命令date
实例 一.Y表示四位数字格式打印年份 y表示两位数字格式打印年份 其他的则为英文单词开头字母大写
[root@localhost sbin]# date +"%Y-%m-%d %H:%M:%S"
2016-08-11 19:07:24
二. 表示前一天的日期:
[root@localhost sbin]# date -d "-1 day" +%d
10
3.3参数前移
[root@localhost sbin]# vim shift.sh
[root@localhost sbin]# sh -x shift.sh 由此可知shift命令每执行一次,变量的个数($#)
+ '[' 0 -eq 0 ']'
[root@localhost sbin]# sh -x shift.sh 1 2 3 4 减一, 变量值提前一位。
+ '[' 4 -eq 0 ']'
+ echo
+ shift
+ '[' 3 -eq 0 ']' + echo
+ shift
+ '[' 2 -eq 0 ']'
+ echo
+ shift
+ '[' 1 -eq 0 ']'
+ echo
+ shift
+ '[' 0 -eq 0 ']'
[root@localhost sbin]# vim shift.sh
[root@localhost sbin]# cat shift.sh
3.4如何计在shell脚本中锚定计数空格行
[root@localhost sbin]#
[root@localhost sbin]# vim konghang.sh
[root@localhost sbin]# bash konghang.sh /etc/fstab /etc/issue
Total blank lines: 2
shift命令还有另外一个重要用途,Bsh定义了9个位置变量,从$1到$9,这并不意味着用户在命令行只能使用9个 参数,借助shift命令可以访问多于9个的参数。
4.总结:
多学!多练!直到孰能生巧融会贯通。
原创文章,作者:Zzuimeng,如若转载,请注明出处:http://www.178linux.com/33524
评论列表(1条)
文章对shell脚本的概念有了一个清楚的认识,需要补充一些脚本的变量及联系作业哦