Bash Shell要完整深入的掌握,需要花一定的時間,但是有時候工作需要,需要快速的掌握其基本用法並編寫簡單的程序來滿足項目的需要,那麼您就可以看看下面的文章,否則沒必要花時間在下面的文字上。
首先要澄清的是,這裡不是要對shell 腳本編程作詳細的研究,正如本文標題所指出的,這是一篇介紹bashshell 腳本編寫語法的快速指南手冊。如果你想深入研究,那麼建議你買一本關於shell腳本編程的書 ;-) 。好,現在開始我們的學習,開始用停表計時吧!
正文:
常見的環境變量:
$PATH - 為可執行程序設置查找路徑,與msdos下的$PATH 變量類似。
$HOME - 用戶的本地目錄(home).
$MAIL - 保存用戶設置的mail投遞路徑。
保存了一串 在命令行中用於 字符分隔 的字符 組成的字串。這個字串通常包含了空格,制表符,換行符。要查看之,你要做一個octal dump 的操作 如下:
$ echo $IFS | od -bc
PS1 and PS2 - 第一順序提示符和第二順序提示符(Primary and secondary prompts). PS1 默認設為 $ , PS2 設置為 '>' . 查看PS2可以通過如下命令:$ ls |
然後按回車。
$USER - 用戶登陸名。
$TERM - 終端類型標識。有時必須為編輯器設置正確的終端標識,以便其正常工作。
$SHELL - 登陸時可通過此查看shell 的類型.
注意:要查看以上變量的值,只要簡單地用 echo 命令 加 $變量名就行了。例如:
$ echo $USER
ravi
就得到了$USER 的值。
bash shell 編程規則
1) 編寫的腳本首行必須為:#!/bin/bash
#井號,後跟!歎號,接著是shell的路徑。這個語句能夠告訴解析器這是一個shell腳本,同時指定shell的路徑。
2)執行腳本前,先為腳本賦執行權限:
$ chmod ugo+x your_shell_script.sh
3)把腳本以.sh後綴命名。這讓人知道這是一個shell腳本。這不是必須的,但是這是規范,沒錯,規范。
條件語句
if
if 語句-對條件命令進行判斷然後決定流程的執行。
藍色的字必要的。紅色的則是可選的。
語法:
if condition_is_true
then
execute commands
else
execute commands
fi
if 條件可以是多路選擇(分支結構)。這樣可以對多條件進行判斷。if condition_is_true
then
execute commands
elif another_condition_is_true
then
execute commands
else
execute commands
fi
例子:
if grep "linuxhelp" thisfile.html
then
echo "Found the word in the file"
else
echo "Sorry no luck!"
fi
if 的搭檔- test命令
test 是shell的一個內置命令。test對右邊的操作數進行判斷。返回true或false.為此,test 用特定的操作符來作條件判斷,如下所示:
關系型操作符-eq Equal to等於
-lt Less than小於
-gt Greater than大於
-ge Greater than or equal to大於等於
-lt Less than小於
-le Less than or equal to 小於等於
文件相關的測試:-f file 存在且為常規文件,則為真
-r file 文件存在且可讀,則為真
-w file 文件存在且可寫,則為真
-x file 文件存在且可執行,則為真
-d file 為文件夾,則為真
-s file 文件存在且不為零則為真
字符串測試:-n str True if string str is not a null string
-z str True if string str is a null string
str1 == str2 True if both strings are equal
str1 != str2 True if both strings are unequal
str True if string str is assigned a value
and is not null.
上面的意思是:
-n str 如果str非空則為真
-z str 如果str為空則為真
str1 == str2 如果兩個字串相等則為真
str1 != str2 如果兩個字串不等則為真
str 如果str有賦非空值則為真。