您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關shell語法是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
rz="hufei" # 定義靜態變量 date=`date` # 賦值,動態變量 echo $rz # hufei echo '$rz' # '$rz' 不能用 echo "$rz" # hufei echo "'$rz'" # 'hufei' echo '"$rz"' #'$rz' 不能用 echo `$rz` # 報錯 echo $date echo ${rz}addword # 變量拼接 總結: 字符串帶上雙引號,變量引用不要用單引號
#!/bin/bash # 生產中不一定是這一行 echo "執行的文件名:$0"; echo "第一個參數為:$1"; echo "第二個參數為:$2"; echo "第三個參數為:$3"; echo "個數:$#" # 參數個數 echo "傳遞參數作為一個字符:$*" #將所有參數拼為一個字符串 echo "PID: $$" # shell進程pid,防止誤kill ./test.sh 1 2 3
執行時加上 -x 或者 #!/bin/bash -x
arr=(hello world jike make you) echo ${arr} # 默認第一個 echo ${arr[*]} # 所有的,按空格分開 echo ${arr[4]} # 第四個 echo ${#arr[*]} # 數組個數
方式1
if condition1 then command1 elif condition2 then command2 else commandN fi
方式2(命令形式)
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
a="abc" b="abc" c=3 # string if [ $a == $b ] then echo "a equal b" else echo "a no equal b" fi # num if [ $c == $b ];then echo "c equal b";else echo "c not equal b";fi # 判斷文件是否存在 dir="/data/" file="/data/file" if [ ! -d $dir ];then echo "${dir}不存在";else echo "${dir}已存在";fi if [ ! -f $file ];then echo "${file}不存在";else echo "${file}已存在";fi 參數說明: -d 判斷對象是否存在,并且為目錄 -f 判斷對象是否存在,并且為常規文件 -s 判斷對象是否存在,并且長度不為0 -nt 判斷file1是否比file2新 [ "/data/file1" -nt "/data/file2" ]
方式1
for var in item1 item2 ... itemN do command1 command2 ... commandN done
for str in 'This is a string' do echo $str done
方式2
for var in item1 item2 ... itemN; do command1; command2… done;
s="hello,world,hadoop,jike,ou" # 方法1 OLD_IFS="$IFS" IFS="," arr=($s) IFS="$OLD_IFS" for x in ${arr[*]} do echo $x done # 方法2 arr2=(${s//,/ }) for x in ${arr2[*]} do echo $x done
while condition do command done
#!/bin/bash int=1 while(( $int<=5 )) do echo $int let "int++" done
case 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac
echo '輸入 1 到 4 之間的數字:' echo '你輸入的數字為:' read aNum case $aNum in 1) echo '你選擇了 1' ;; 2) echo '你選擇了 2' ;; 3) echo '你選擇了 3' ;; 4) echo '你選擇了 4' ;; *) echo '你沒有輸入 1 到 4 之間的數字' ;; esac
示例1(無返回值)
#!/bin/bash # author:菜鳥教程 # url:www.runoob.com demoFun(){ echo "這是我的第一個 shell 函數!" } echo "-----函數開始執行-----" demoFun echo "-----函數執行完畢-----"
示例2(有返回值)
#!/bin/bash # author:菜鳥教程 # url:www.runoob.com funWithReturn(){ echo "這個函數會對輸入的兩個數字進行相加運算..." echo "輸入第一個數字: " read aNum echo "輸入第二個數字: " read anotherNum echo "兩個數字分別為 $aNum 和 $anotherNum !" return $(($aNum+$anotherNum)) } funWithReturn echo "輸入的兩個數字之和為 $? !"
示例3(接收參數)
#!/bin/bash # author:菜鳥教程 # url:www.runoob.com funWithParam(){ echo "第一個參數為 $1 !" echo "第二個參數為 $2 !" echo "第十個參數為 $10 !" echo "第十個參數為 ${10} !" echo "第十一個參數為 ${11} !" echo "參數總數有 $# 個!" echo "作為一個字符串輸出所有參數 $* !" } funWithParam 1 2 3 4 5 6 7 8 9 34 73
包含文件可以用于封裝公共文件
. filename # 注意點號(.)和文件名中間有一空格 或 source filename
#!/bin/bash # author:菜鳥教程 # url:www.runoob.com #使用 . 號來引用test1.sh 文件 . ./test1.sh # 或者使用以下包含文件代碼 # source ./test1.sh echo "菜鳥教程官網地址:$url"
看完上述內容,你們對shell語法是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。