touch hello.sh
建立乙個檔案
vi hello.sh
編輯文字
#!
/bin/bash
//指定bash解析器,centos預設的是bash解析器
echo helloworld
echo "helloworld"
//這兩句話效果相同,不過為了符合規範用第二種
執行指令碼,首先賦予指令碼最大許可權
chmod 777 hello.sh
執行指令碼的兩種基本方法
./hello.sh
在指定目錄下執行指令碼
sh hello.sh
直接執行
/root/datas/hello.sh
/root/datas是執行hello指令碼的必經之路
vi batch.sh
//建立指令碼
因為這裡沒有判斷檔案是否存在,所以第二次執行時會報錯,原因是yok.s**件已存在
$n (功能描述:n為數字,$0代表該指令碼名稱,$1-9代表
第一到第
九個引數
,十以上
的引數需
要用大括
號包含,
如9代表第一到第九個引數,十以上的引數需要用大括號包含,如
9代表第一到
第九個參
數,十以
上的引數
需要用大
括號包含,如)
vi parameter.sh
//建立乙個指令碼進入
#!/bin/bash
echo "$0 $1 $2"
echo $#
//這裡$0表示該指令碼的名稱
//$1,$2表示指令碼的個數以輸出的順序
//$#表示輸入的引數的個數
expr 2+3
//結果是5
expr 2+3
//結果是2+3
//若2+3之間不用空格隔開,則會輸出這句話,分割開才有運算的效果
//expr完成一步計算
expr `expr 2
+3` \*
4//結果20,\*是乘的意思
-lt 小於(less than) -le 小於等於(less equal)
-eq 等於(equal) -gt 大於(greater than)
-ge 大於等於(greater equal) -ne 不等於(not equal)
-f 檔案存在並且是乙個常規的檔案(file)
-e 檔案存在(existence) -d 檔案存在並是乙個目錄(directory)
if語句
1.基本語法
if[ 條件判斷式 ]
;then
程式 fi 或者
if[ 條件判斷式 ]
then
程式 fi完整結構
if[條件表示式]
then
程式elif [條件表示式]
then
程式else
程式fi
[ 條件 ],注意這裡面必須要有空格
vi if.sh
建立乙個指令碼
#!
/bin/bash
if[ $1
-eq "1"
]then
echo "zhe is test"
fi
case語句
1.基本語法
case $變數名 in
「值1」)
如果變數的值等於值1,則執行程式1
;;「值2」)
如果變數的值等於值2,則執行程式2
;;…省略其他分支…
*)如果變數的值都不是以上的值,則執行此程式
;;esac
vi case.sh建立乙個指令碼
#!
/bin/bash
case $1 i
"1")
echo "first parameter";;
*)echo "others";;
esac
//若在鍵盤輸入乙個引數,則列印first parameter,否則輸出others
for迴圈
1.基本語法1
for (( 初始值;迴圈控制條件;變數變化 ))
do程式
done
vi for
.sh建立乙個指令碼
#!/bin/bashs=0
for(()
)
shell 死迴圈if判斷 shell 死迴圈
例1 執行指令碼後會自動載入firefox瀏覽器,並開啟指定網頁。如果使用者關閉firefox,指令碼會再次自動重新開啟firefox。如需結束迴圈,中止t2.sh程序即可。注意不要同時執行兩個t1.sh指令碼,否則 若事先不知道指令碼名,也可以通過類似於 pstree grep firefox 的...
shell中迴圈命令的講解
一 for迴圈 for迴圈的格式為 for 變數名 in 列表 do 命令1 命令2 done 當變數值在列表裡,for迴圈即執行一次所有命令,使用變數名訪問列表中取值。命令可為任何有效的shel命令和語句。變數名為任何單詞。in列表用法是可選的,如果不用它,for迴圈使用命令列的位置引數。in列表...
shell 陣列 迴圈
bin bash array 1 2 3 4 5 以括號括起為陣列 中間是空格 for num in 以這種for列印陣列 do echo num done 0 a 第二種定義陣列的方法 1 b 2 c for i 0 i i do 返回陣列的大小 echo 這兩種都可以 通過下標列印陣列 陣列從0...