一般模板
#!/bin/bash shell型別
#a ****** shell script example
#a function
sayhello() 函式
echo
"programme starts here..." 主過程
sayhello
echo
"programme ends."
特殊符號:
1、注釋符#
除了#!/bin/bash裡的#特殊
2、美元符 變數
符。與反
斜槓轉義
符相反,
使其後的
普通字元
作為變數
名,如 a表示變數a的值。變數字元長度超過1個時,用{}括起來
3、、單引號
被引起的字元全部做普通字元,即全部原樣
echo 『my $shell』
4、雙引號
引號內的內容,除$、轉義符\、倒引號這三個保留特殊功能,其他字元均做普通字元。
5、倒引號(數字1鍵旁邊的那個鍵)
引號內的字串當做shell命令列解釋執行,得到的結果取代整個倒引號括起來的部分。
pwd`即pwd命令的執行結果
$logname 系統變數
#!/bin/bash
echo
"abcdefg........"
syshello
syshello
()echo
"start......."
sy```shello
echo
"exit......"
常用環境變數
1、home變數
linux系統中的每個使用者都有乙個相關的稱作home的目錄。
2、path序的搜尋
包含一列用冒號定界的目錄的路徑名字,便於可執行程式的搜尋。
部分內部變數是:
$#
——傳送給shell程式的位置引數的數量
$?
——最後命令的完成碼或者在shell程式內部執行的shell程式(返回值)
$0
——shell程式的名稱
$*
——呼叫shell程式時所傳送的全部引數的單字串, 「引數1」「引數2」…形式儲存的引數
$n
———-第n個引數
條件判斷命令:
test n1 -引數 n2(或 –引數 表示式)真返回0,假返回1。
引數:
-lt 小於
-le小於等於
-gt 大於
-ge 大於等於
-eq 等於
-ne 不等於
#!/bin/bash
if [ $#
-ne1 ]
then
echo
"usage:$0 filename"
exit1fi
<< a
if test -f
$1then
echo
"file exist!"
else
touch $1
echo
"create file:$1"fia
test -f
$1 && echo
"file exist!"
test -f
$1 || touch $1
shell運算子和c語言基本類似,也有分支、迴圈流程控制。
簡單舉例
後面例子涉及的命令:
seq命令:產生數字序列
比如 seq 100 400
expr命令:對表示式求值
直接求值命令:對被括起來的表示式求值
迴圈語句:
#!/bin/bash
<< a
for i in asn 12 dd 56464sfs 646g
doecho
$idone
a<< b
s=0for i in12
3456
78910
do s=$((s+i))
done
echo$sb
s=0for i in `seq 1
10`do
s=$((s+i))
done
echo
$s
#!/bin/bash
s=0i=0
while [ $i -le 100 ]
do s=$((s+i))
i=$((i+1))
done
echo
$s
**檔案測試
-f 存在且是普通檔案
-d 存在且是目錄
-s 存在且位元組數大於0
-r 存在且可讀
-w 存在且可寫
-x 存在且可執行
如:test -d 「mydoc」
判斷mydoc是否是目錄
字串測試
test s 字串s非空
test s1=s2 字串s1等於s2
test s1!=s2 字串s1不等於s2
test -z s 字串長=0,即為空串
test -n s 字串長》0
=: 等於則為真
!=:不相等則為真
-z字串:字串長度為零則為真
-n字串:字串長度不為零則為真**n字串:字串長度不為零則為真
幾個 shell 的應用
1,編寫乙個名為iffile程式,它執行時判斷/bin目錄下date檔案是否存在?
filename=/bin/date
if (test -f
"$filename")
then
echo
"exist"
fi
2.編寫乙個名為menu的程式,實現簡單的彈出式選單功能,使用者能根據顯示的選單項從鍵盤選擇執行對應的命令。
#!/bin/bash
clear
echo
" ---------menu---------"
echo
echo
"1.find files modified in last 24 hours"
echo
"2.the free disk space"
echo
"3.space consumed by this user"
echo
"4.exit"
echo
echo -n " select:"
read choice
case
$choice
in1)find $home -mtime -1 -print;;
2)df;;
3)du -s
$home;;
4)exit;;
*)echo
"invalid option"
esac
3.編寫乙個名為greet的問候程式,執行時能根據系統當前的時間向使用者輸出問候資訊。設從半夜到中午為早晨,中午到下午六點為下午,下午六點到半夜為晚上。
#! /bin/bash
hour=`date | cut -c 10-11`
if test "$hour" -ge 0
"$hour"
-lt12;
then
echo
"good morning!"
elif
test "$hour" -ge 12
-a"$hour" -le 18;
then
echo
"good afternoon!"
else
echo
"good evening!"
fi
書寫一些簡單的shell指令碼
1 檢查定時任務是否開啟 root shell 2.5 cat sb01.sh bin bash etc init.d functions service ps ef grep crond wc l if service gt 1 then echo action crond is running ...
Substring 的一些簡單用法
string teststring abc def teststring.substring 2 return c def teststring.substring teststring.lastindexof 1 return def teststring.substring teststring...
LINQ to SQL的一些簡單用法
static void main string args new person 新建乙個list,事先存放一些資料 var a personlist.firstordefault 獲取personlist中第一條資料 var b personlist.where p p.personid 2 fir...