time for i in $(seq 11111);do count=`echo expr length "$"`;done;
time 表示打出當前指令碼執行時間,後面的語句 表示求字元長度
變數的數值計算:
((a=***xx))
b=$((******)) 只能計算整數
++ -- 變數在前,先輸出變數值,變數在後,就是先運算後輸出變數的值
** 表示冪運算
判斷檔案的副檔名 if expr 「$1」:".*\.pub" (副檔名不是.pub 就返回0 ,如果是,則返回$1字串的長度)
if expr 「$1」:".*\.pub"; then ***x fi
或者expr 「$1」:".*\.pub" &&echo 1 ||echo 0 如果匹配輸出1 否則輸出0
判斷變數是否是整數, 用變數加0 如果$? 返回非零,則表示報錯,則不是整數
shell指令碼用反斜線表示換一行接著寫
如果出錯可以用dos2unix ***x.sh
read 表示讀入引數 給對應變數 read -t 5 -p 「pls input:」 a 把讀入的資料傳給變數a,5秒後就超時退出 -p表示給使用者的提示資訊
i=2
i=`echo $i+1|bc` 輸出內容通過管道交給bc 計算器程式(優勢在計算小數)
seq -s 「+」 10 從1開始到10 產生乙個序列,中間用加號連線
echo 「scale=2:;5.23/3.13」|bc 表示將結果保留兩位小數
echo 「obase=2:;5.23/3.13」|bc 表示將結果輸出為2進製
$ 表示取出變數的值
& 表示取位址,把結果塞到什麼位置
echo -n 「***xx」 表示不換行列印
[ ***xx ] 或者 [[ ****** ]] 都可以用在測試判斷上, 但是&& ,||,>,< 可以用在雙括號裡,不許用在單括號裡。
但是單括號裡 可以用 -a 表示&& 用 -o 表示|| -gt 表示 > -lt 表示 <
推薦用[[ ***xx ]],但是這個教程的老師用的是[***x] 而且系統指令碼多用[******]
-f ***x 表示 ***xx檔案是否存在
-d ***xx 表示 ***xx 目錄是否存在
-z 「***x」 判斷字串是否長度為0,為0則為真
變數表示引數進行判斷加上雙引號比較保險,雙引號會把內容填入變數之中
字串變數一定要加雙引號
求字串長度「$」 字串***xx的長度
多行內容列印輸出用
cat if[條件]
then
指令fi
如果要寫在一行就要用分號分開
檢視多餘記憶體 free -m
剩餘記憶體,linux 特性,只要不用的記憶體就給你快取起來,真正的記憶體看buffer位置
free -m|awk '/buffers\// ' awk 命令找到對應關鍵字的行 $nf
nf代表:瀏覽記錄的域的個數
$nf代表:最後乙個field(列)
也有前者是輸出了域個數,後者是輸出最後乙個欄位的內容
if 條件
then
指令elif 條件
then
指令else
指令fi
發郵件的語法
aaaa | mail -s "主題" 「******[email protected]」 # aaa是內容,主題是主題,***x是郵箱位址
或者先賦值變數f,然後 mail -s "主題" 「******[email protected]」< $f
sed 's/ //g'
s 替換
/ 正規表示式開始
[ ] 匹配中的每個字元,這裡是空格
* 前一字元重複任意次(包含0次)
$ 錨定行尾
g 全部替換
判斷字串是否為數字的方法:
1、把字串中數字全部去掉,看看長度是否為零
2、把變數字串的數字去掉--echo 「$」 格式為$
3、把非數字的部分刪除看看是不是本身
4、expr 計算判斷 expr $1 +0 >/dev/null 2>&1
shell 指令碼學習 三
printf 命令的語法 預設不會像 echo 一樣自動新增換行符 printf format string arguments.format sting 格式控制字串 arguments 為引數列表 bin bash printf 10s 8s 4s n 姓名 性別 體重kg printf 10s...
Shell指令碼(三) Shell指令碼入門
1 指令碼格式 指令碼以 bin bash開頭 指定解析器 2 第乙個shell指令碼 helloworld 1 需求 建立乙個shell指令碼,輸出helloworld 2 案例實操 atguigu hadoop101 datas touch helloworld.sh atguigu hadoo...
Shell 指令碼學習筆記三 Shell字串
your name li lei 雙引號字串 str this is a string 單引號字串 拼接字串 your name qinjx greeting hello,your name greeting 1 hello,echo greeting greeting 1 獲取字串長度 strin...