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.www58058.com/33524
文章對shell腳本的概念有了一個清楚的認識,需要補充一些腳本的變量及聯系作業哦