閱讀shell腳本
基本的shell腳本
一個shell腳本是一個ASCII文件,包含了一系列的命令以及注釋。
注釋是文檔中的文本,用來說明腳本的功能以及每一行腳本執(zhí)行完后需要完成的功能,注釋以#開頭。
確定shell腳本類型
腳本最上面一行說明執(zhí)行腳本的shell程序類型,例如,對于Bourn shell而言,第一行應該是:
#!/bin/sh
內(nèi)核使用#!來識別用來翻譯腳本的程序。
備注:korn shell的第一行應該為#!/bin/ksh,c shell的第一行應該為#!/bin/csh。
不過,并不是所有的shell腳本使用最上面一行來識別shell程序。
一些腳本可以在最上面有一個基本的文本注釋。和父shell同樣的shell來執(zhí)行該腳本。一些腳本可能在最上面沒有注釋。在這種情況下,則使用默認的shell程序來執(zhí)行該腳本。
創(chuàng)建一個基本的shell腳本
創(chuàng)建一個基本的shell腳本使用以下步驟:
1、使用vi編輯器,創(chuàng)建一個文件,名為my.script,輸入命令,后跟tab鍵,然后以#開頭定義注釋;
如何做網(wǎng)頁
2、使文件可以執(zhí)行,然后在命令行方式下輸入該文件的命令。
$ vi my.script
who # To view who is logged on the system.
date # To view the current date and time
ls -l # To view files in current directory
:wq
$ chmod 755 my.script
$./my.script
Bourne shell編程
用于管理Solaris操作環(huán)境的標準管理腳本是bourne shell腳本。
為了成功控制、修改操作環(huán)境的行為,系統(tǒng)管理員必須可以讀、修改和定制這些不同的shell腳本文件。
通常,所有的Bourne shell腳本包括了一組UNIX命令、Bourne shell內(nèi)建命令、編程結(jié)構和注釋。
Bourne shell腳本
要能夠閱讀,更重要的是理解基本shell腳本的內(nèi)容,必須能夠:
1、能夠理解參數(shù)如何傳給腳本,通過使用特殊的稱為位置變量的內(nèi)建變量傳遞;
2、能夠識別和分析簡單的條件結(jié)構和流程控制; 精選IT教程
特殊的shell內(nèi)建變量
位置參數(shù)
特殊的shell內(nèi)建變量稱為位置參數(shù),用于從命令行中傳遞參數(shù)給腳本。
在命令行方式下,跟在腳本名稱后的用空格分割的每個單詞,稱為參數(shù),這些參數(shù)在shell腳本中稱為位置參數(shù)。
命令格式
scriptname argument1 argument2 argument3 ...
當腳本執(zhí)行時,shell自動存儲命令行中的第一個參數(shù)到位置參數(shù)$1中,第二個參數(shù)到位置參數(shù)$2中,第三個參數(shù)到位置參數(shù)#3中,依此類推。
重置一個位置參數(shù)
set命令用于重置位置參數(shù)。
下面示例描述如何使用set命令來設置位置參數(shù)。
首先執(zhí)行帶選項-m的who命令,查看輸出:
$ who -m
user1 pts/5 Mar 13 11:43 (host1)
$
現(xiàn)在使用cat命令創(chuàng)建shell腳本,命名為my.script3:
$ vi my.script3
#!/bin/sh
set ‘who -m‘
echo Here are the positional variables that have been set: .zuowangye.net#,
echo The first is: $1
echo The second is: $2
echo The third is: $3
echo The fourth is: $4
echo The fifth is: $5
echo The sixth is: $6
echo This script is: $0
$ ^d
使用chmod命令使腳本可以執(zhí)行:
$ chmod 755 script3
$
執(zhí)行新腳本:
$ my.script3
Here are the positional variables that have been set:
The first is: user1
The second is: pts/5
The third is: Mar
The fourth is: 13
The fifth is: 11:43
The sixth is: (host1)
This script is: my.script3
$
Bourne shell最多允許使用9個位置參數(shù),$1到$9。腳本名稱另外放在參數(shù)$0的引用中。 經(jīng)典教程
位置參數(shù)含義
$1到$9引用$1到$9位置參數(shù)
$0 引用當前shell腳本名稱
另外兩個有用的位置參數(shù)是$#和$@。
1、$#:返回存儲在$1到$9位置參數(shù)的命令行參數(shù)總數(shù);
2、$@:展開位置參數(shù),顯示每個存儲的參數(shù);
下面的示例說明腳本中位置參數(shù)的作用。
創(chuàng)建名為my.script4的腳本,更改屬性為可執(zhí)行。
$ vi my.script4
#!/bin/sh
echo The script name is: $0
echo
echo The first argument passed is: $1
echo The second argument passed is: $2
echo
echo The highest numbered parameter is: $#
echo The parameters passed to the script are: $@