日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Bash编程语法

發布時間:2023/12/8 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bash编程语法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?使用visual studio code連接遠程機器:

Shell語法中,面向過程,不面向對象;非高級編程語言,屬于腳本語言,盡量用“”雙引號,不要用‘’單引號。

1.變量

? ? ? ? 1.1規則:a.變量命名只能是英文字母,數字,下劃線組成,首字符不能為數字;

? ? ? ? ? ? ? ? b.中間不能有空格,可以是下劃線;

? ? ? ? ? ? ? ? c.不能使用標點符號;

? ? ? ? ? ? ? ? d.不能使用bash內置的關鍵字(可使用help命令查看保留的關鍵字)

? ? ? ? 定義變量:name="chuntian"

? ? ? ? 只讀變量:readonly name

? ? ? ? 使用變量:$name

? ? ? ? 刪除變量:unset name(對只讀變量無效)

? ? ? ? 1.2如果想把一個命令的輸出保存到一個變量,使用: 變量名=$(命令) 的方式。? ? ? ? ?

????????????????注意:$(( ))2個括號代表數值運算;

? ? ? ? ? ? ? ? ? ?????????$( ) 1個括號代表命令執行;

? ? ? ? 1.3升級全局變量

? ? ? ? .sh結尾的文件中如果使用了$var來引用局部變量,不會生效,可以使用export關鍵字將局部變量升級為全局變量:

? ? ? ? ?1.4 .bashrc文件:全局環境文件

????????????????命令行中的export只能將變量設置為當前程序(進程)的全局變量,無法在其他進程中使用該變量,可以在~/.bashrc隱藏文件中使用export設置變量,這樣就所有的進程,所有地方,所有shell窗口中都能使用該變量:

? ? ? ? ? ? ? ? source .bashrc 生效?

?調用變量的方式:“${var_name}”

?env :查看系統的環境變量(同windows中的PATH命令)

?$?:獲取前一條命令執行結果,0代表成功,非0代表失敗?

?算數運算:$(( 1+1 )) 等效于 "$(expr 1 \+ 1)"

? ? ? ? 注意:$(( ))2個括號代表數值運算;

? ? ? ? ? ? ? ? ? ?$( ) 1個括號代表命令執行;

?2.字符串操作

? ? ? ? str_name="chuntian"

? ? ? ? 拼接字符串:greeting="hello,"$str_name""

?3.數組操作

? ? ? ? 定義數組:array_name=()

? ? ? ? ? ? ? ??單獨賦值:array_name[n]=valuen?

? ? ? ? ? ? ? ? 取數組元素:value_n=${array_name[n]}

條件表達式條件表達式成功,返回0,不成功,返回非0.

? ? ? ? [ 1 = 1?] 兩邊必須有空格,等同[ 1 == 1?]

邏輯表達式:&& (python中的and),||(python中的or)

文件表達式:

????????-f 判斷輸入內容是否是一個文件

? ? ? ? -d 判斷輸入內容是否是一個目錄

? ? ? ? -x 判斷輸入內容是否可執行

? ? ? ? -e 判斷文件是否存在。

Shell 腳本的宏定義:

? ? ? ? #!/bin/bash?:代表用bash這個shell執行腳本代碼?

4.if條件控制:

? ? ? ? if [ condition1 ]

? ? ? ? then?

? ? ? ? ? ? ? ? command1

? ? ? ? elif [?condition2?]

? ? ? ? then

? ? ? ? ? ? ? ? command2

? ? ? ? ? ? ? ? .......

? ? ? ? else

? ? ? ? ? ? ? ? commandn

? ? ? ? fi

? ? ? ? ?舉例:? ??if [ a==b ];then echo "true";else echo "false";fi

????????????????????????if [[ a>b ]];then echo "a大于b";else echo "a小于b";fi

? ? ? ? ? ? ? ? ? ? ? ? tips:當if后面條件判斷為>或者<時,判斷條件需要用2個[]包裹,

???????????????????????????????即[[condition]]

? ? ? ? if [ $a -eq $b ];then echo ""$a" equal "$b"";elif [ $a -lt $b ];then echo ""$a" less than "$a"";elif [ $a -gt $b ];then echo ""$a" bigger than "$b"";fi

? ? ? ? tips:注意各個字符間都必須要有空格,還有盡量都使用雙引號,可以不考慮單雙引號交替.

5.for 循環

? ?格式1:

? ? ? ? for var in item1 item2....itemN

? ? ? ? do

? ? ? ? ? ? ? ? command1

? ? ? ? ? ? ? ? command2

? ? ? ? ? ? ? ? ........

? ? ? ? ? ? ? ? commandN

? ? ? ? done

???格式2:

? ? ? ? max=10

? ? ? ? for ((i=1;i<=max;i++))

? ? ? ? do

? ? ? ? ? ? ? ? echo "${i}"

? ? ? ? done

? ? ? ? for loop in 1 2 3 4 5;do echo "I love chuntian"$loop""

? ? ? ? ?讀取文件,循環打印

6.while 循環

? ? ? ? while condition

? ? ? ? do

? ? ? ? ? ? ? ? command

? ? ? ? done

? ? ? ? ?舉例:注意比較while read i;do echo $i;done<tt.txt

????????????????????????和for i in $(cat tt.txt);do echo $i;done的區別

? ? ? ? ?此處應比較for i in $(cat tt.txt);do echo $i;done會將文件內的空格算作一行

? ? ? ? ? ? ? ?腳本:

? ? ? ? 執行結果:

?case:

#!/bin/bash #Author:chuntian_Tester #Date:2020-02-02 #test while loopif [ ! $# -eq 3 ];thenecho -e "Usage:\n $0 num1 +|-|*|/ num2"exit 1 ficase $2 in+)echo "$1 +$3 = $(($1 + $3 ))";;-)echo "$1 +$3 = $(($1 - $3 ))";;\*)echo "$1 +$3 = $(($1 * $3 ))";;/)echo "$1 +$3 = $(($1 / $3 ))";;*)echo "$2 can not calculate" esacexit 0

效果:

7.函數

? ? ? ? 格式1: 函數名(){ 函數體?}

? ? ? ? 格式2: function 函數名{ 函數體?}

? ? ? ? ?函數傳參:

? ? ? ? ? ? read -p "請輸入用戶名:"? username 等同于python中的username=input("請輸入用戶名")

總結

以上是生活随笔為你收集整理的Bash编程语法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。