在/tmp/目錄下新建乙個檔案sum.sh用於寫簡單的指令碼內容
//指令碼檔案用.sh字尾名,雖然linux系統沒有像windows那麼注重字尾名與檔案型別的關聯,但在寫指令碼時固定字尾名有利於以後對指令碼檔案的分辨查詢等等,這是一種好習慣。
[root@server01 tmp]# vim sum.sh
指令碼內容如下:
#!/bin/bash
#測試1:etc/passwd檔案中第5行使用者與第6行使用者的uid的和
#uid5=$1
#uid6=$2
uid5=$(cat /etc/passwd |sed -n '5p'|cut -d: -f3)
uid6=$(cat /etc/passwd |sed -n '6p'|cut -d: -f3)
#檢視所有使用者資訊|過濾第5(6)行列印出來|以:為分界符切割並輸出第三段(第3段資訊表示uid)
#echo "sum=$[ $uid5+$uid6 ]"
#中括號與內容之間應有空格隔開,而加號等號減號除號等前後相鄰處不能有空格
let "sum=$uid5+$uid6"
echo $sum
#echo "sum=$[ $uid5+$uid6 ]" 與let "sum=$uid5+$uid6"都可以解決輸出結果為sum=4+5的問題,就是把字元轉義為數字相加
uid7=$(cat /etc/passwd|sed -n '7p'|cut -d: -f3)
#注意$符號的使用
echo $uid7
#測試2:定義a=1、b=2,c=a+b,輸出c的值
a=1b=2
c=$a+$b
echo "c=$[$a+$b]" #輸出c=3
echo c=$[$a+$b] #輸出c=3
echo "$c" #輸出c=1+2
echo $c #輸出c=1+2
echo c #輸出c
在bash指令碼語言檔案中格式:
第一行#!/bin/bash:定義bash指令碼直譯器
注釋用#號+注釋內容
**注釋時(同一行注釋)需要先縮排,適度新增空白行再注釋
疑問:對於$符號的放置還不是很明白,但明白這是變數的標誌
初次學習linux指令碼檔案筆記
單引號和雙引號 單引號和雙引號都能關閉shell對特殊字元的處理。不同的是,雙引號沒有單引號嚴格,單引 號關閉所有有特殊作用的字元,而雙引號只要求shell忽略大多數,具體的說,就是 美元符號 反引號 反斜槓,這3種特殊字元不被忽略。不忽略美元符號意味著shell在雙引號內部也進行變數名替換。條件測...
初次使用shell指令碼 bash
遇到需要在ecs部署個定時監控的情況,第一次實際用到shell,雖然是很簡單的指令碼,作為初學者就做了下記錄 個人而言,需要注意的是,在sh裡啟用虛擬環境時需要進行conda initialize,另外定時作業應該建立相應的logs,再有就是bash裡雙引號關閉部分元字元特殊意義,單引號關閉所有元字...
bash指令碼檔案中為什麼以 開頭
在每個bash指令碼的開頭都使用 這用來告訴系統此檔案的執行需要指定乙個直譯器。實際上是乙個 2 位元組的魔力數字,這是指定乙個檔案型別的特殊標記,換句話說,在這裡指是乙個可執行的指令碼 鍵入 man magic 來獲得關於這個迷人話題的更多詳細資訊 在 之後接著是乙個路徑名,這個路徑名指定了乙個解...