閱讀shell腳本
基本的shell腳本
一個shell腳本是一個ASCII文件,包含了一系列的命令以及注釋。
注釋是文檔中的文本,用來說明腳本的功能以及每一行腳本執行完后需要完成的功能,注釋以#開頭。
確定shell腳本類型
腳本最上面一行說明執行腳本的shell程序類型,例如,對于Bourn shell而言,第一行應該是:
#!/bin/sh
內核使用#!來識別用來翻譯腳本的程序。
備注:korn shell的第一行應該為#!/bin/ksh,c shell的第一行應該為#!/bin/csh。
不過,并不是所有的shell腳本使用最上面一行來識別shell程序。
一些腳本可以在最上面有一個基本的文本注釋。和父shell同樣的shell來執行該腳本。一些腳本可能在最上面沒有注釋。在這種情況下,則使用默認的shell程序來執行該腳本。
創建一個基本的shell腳本
創建一個基本的shell腳本使用以下步驟:
1、使用vi編輯器,創建一個文件,名為my.script,輸入命令,后跟tab鍵,然后以#開頭定義注釋;
如何做網頁
2、使文件可以執行,然后在命令行方式下輸入該文件的命令。
$ 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操作環境的標準管理腳本是bourne shell腳本。
為了成功控制、修改操作環境的行為,系統管理員必須可以讀、修改和定制這些不同的shell腳本文件。
通常,所有的Bourne shell腳本包括了一組UNIX命令、Bourne shell內建命令、編程結構和注釋。
Bourne shell腳本
要能夠閱讀,更重要的是理解基本shell腳本的內容,必須能夠:
1、能夠理解參數如何傳給腳本,通過使用特殊的稱為位置變量的內建變量傳遞;
2、能夠識別和分析簡單的條件結構和流程控制; 精選IT教程
特殊的shell內建變量
位置參數
特殊的shell內建變量稱為位置參數,用于從命令行中傳遞參數給腳本。
在命令行方式下,跟在腳本名稱后的用空格分割的每個單詞,稱為參數,這些參數在shell腳本中稱為位置參數。
命令格式
scriptname argument1 argument2 argument3 ...
當腳本執行時,shell自動存儲命令行中的第一個參數到位置參數$1中,第二個參數到位置參數$2中,第三個參數到位置參數#3中,依此類推。
重置一個位置參數
set命令用于重置位置參數。
下面示例描述如何使用set命令來設置位置參數。
首先執行帶選項-m的who命令,查看輸出:
$ who -m
user1 pts/5 Mar 13 11:43 (host1)
$
現在使用cat命令創建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命令使腳本可以執行:
$ chmod 755 script3
$
執行新腳本:
$ 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個位置參數,$1到$9。腳本名稱另外放在參數$0的引用中。 經典教程
位置參數含義
$1到$9引用$1到$9位置參數
$0 引用當前shell腳本名稱
另外兩個有用的位置參數是$#和$@。
1、$#:返回存儲在$1到$9位置參數的命令行參數總數;
2、$@:展開位置參數,顯示每個存儲的參數;
下面的示例說明腳本中位置參數的作用。
創建名為my.script4的腳本,更改屬性為可執行。
$ 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: $@