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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux 脚本、 正则表达式 等

發布時間:2023/12/19 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux 脚本、 正则表达式 等 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
shell的腳步總是以這樣的一行開頭:#!/bin/bash這行叫做shebang順序執行兩個命令,可以$cmd1;cmd2要驗證腳本語法的準確性,可以用bask-nscriptfilename來驗證如果要debug則為bash-xscr.sh刪除老的文件:find /home/wwwroot -type f-mtime +30 -exec rm-f{}\;這里{}和;都是-exec必須的,加\是防止shell解析;錯誤輸出如果看見命令結尾有一個2>/dev/null這是將命令的標準錯誤輸出,即2,定向到null這就是linux的文件描述符decsriptorstdin0stdout1stderr2你可以把錯誤和標準輸出分別重定向到兩個文件somecmd2>err.txt1>out.txt變量:變量既可以做字符也可以做整數,如果是當作整數操作時,要加上letlet"x=$x+1"不然用x=$x+1就變成后面加上一個+1了注意變量賦值,等號前后不要有空格!變量的長度,就是說它有幾個字符,${#var}變量類型:變量都是作為string存儲的,如果要做數學運算,就要用let或者中括號letresult=no1+no2#這里引用變量不用$了letreult++letno1+=6ORresult=$[no1+no2]#這里對于空格的位置和個數要求很高,中括號里面也可以用$引用result=$[$no1+100]還有一種方法是用(()),比較煩了還有方法是expr命令,對于格式要求很高expr3+4返回7,如果沒有加對空格expr3+4就返回“3+4”了!result=`expr3+4`
result=$(expr$no1+5)注意上面$加上(),其實也是運行一個命令獲取返回值的辦法。注意,如果你要引用變量的值,要放在引號里的話,把它放在雙引號里,如果是放在單引號里,不會自動擴展變量的值。環境變量:UID,是用戶ID,對于root總是0,所以要檢查是不是以root身份在運行,if[$UID-ne0];thendosomethingfi輸出變量的時候echo$varecho${var}都可以,后者可能是嵌套在雙引號里面有用,不容易和其他文字混淆。數組的定義,可以兩種方法array=(123456)或者array[0]="a"array[1]="b"array[2]="c"引用數組的值:echo${array_var[0]}或者echo${array_var[$index]}或者打印所有echo${array_var[*]}要知道數組長度echo${#array_var[*]}×××函數函數定義可以是functionfname(){...}或者直接fname(){...}引用的時候直接用名字fname,有參數的話加在后面,不用括號$1$2$3原來使用傳遞給function的參數$?表示上次執行的命令返回的值,一般0表示運行正常循環,判斷等順序的命令:forvarinlist;
do
commands;#use$var
done----whilecondition
do
commands;
done------x=0;
until[$x-eq9];
doletx++;echo$x;
done-----ifcondition;
then
commands;
fi-------ifcondition;
then
commands;
elifcondition;
then
commands
else
commands
fi--------在條件判斷里面,如果判斷string的話,最好是加上雙括號[[$str1==$str2]][[$str1!=$str2]][[$str1>$str2]][[-z$str1]]:Returnstrueifstr1holdsanemptystring[[-n$str1]]:Returnstrueifstr1holdsanon-emptystring腳本里面運行一個命令或程序,是可把命令程序名稱放在變量里的,看profile運行目錄里一系列.sh文件,用了這個方法for i in/etc/profile.d/&.sh;doif[-r"$i"];then.$ifidoneLinux對正則表達式支持的很好,如果熟悉的話,工作起來會很方便。比如對于.conf之類的配置文件,通常里面很多是#開頭的注釋行。你要看真正有用的配置行的話,就可以用這個命令grep^[^#]httpd.conf這里第一個^表示行的開頭,中括號里的^表示否,即找出行開頭不是#的行

還有很多實用的用法,等以后想到一一補充,呵呵。


sed 里的正則表達式,又有些不同。

小括號和大括號前面都要加上反斜杠,不然就當一個普通字符處理。

\{i\}As *, but matches exactly i sequences (i is a decimal integer; for portability, keep it between 0 and 255 inclusive). ? ? ?

\{i,j\}

Matches between i and j, inclusive, sequences. ? ? ?

\{i,\}
Matches more than or equal to i sequences. ? ? ?

\(regexp\)

Groups the inner regexp as a whole,

括號里定義的正則表達式匹配的字符可以引用,

\digitMatches the digit-th \(...\) parenthesized subexpression in the regular expression. ?This is called a back reference. ?Subexpressions are implicity numbered by counting occurrences of \( left-to-right. ? ? ?

轉載于:https://blog.51cto.com/caozs/202236

總結

以上是生活随笔為你收集整理的Linux 脚本、 正则表达式 等的全部內容,希望文章能夠幫你解決所遇到的問題。

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