shell命令,shell迴圈,shell引數

2021-09-27 07:37:04 字數 2600 閱讀 9954

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...