自學shell指令碼

來源:互聯網
上載者:User

標籤:

  首先學習趙文宇的總結指令碼:

1.變數

HOST=$(/bin/hostname)
將()裡的命令執行後的結果賦值給HOST變數
HOST=`/bin/hostname`

將反引號裡面的執行結果賦值給HOST變數

 

2.echo

echo $?   // 對上一次命令執行成功與否成功$?為0

3.if等一些需要條件判斷的語句
(1)判斷檔案是否存在且是否為檔案
[ -f file ]
判斷檔案是否存在且是否為可寫檔案
[ -w file ]
判斷檔案是否存在且是否為可執行檔
[ -x file ]
判斷檔案是否存在且是否為可讀檔案
[ -r file ]
判斷檔案是否存在且是否為目錄檔案
[ -d file ]
判斷檔案是否存在且是否為空白檔案
[ -s file ]
判斷檔案是否存在
[ -e file ]
[]和 test功能一樣  -a和-o(和,或)

(2)整數值比較判斷
[ -eq ]
[ "$a" = "0" ]
(( a % 2 == 0 ))

注意:(( a == 50 )) 數值的比較,在(())裡用不用$都一樣


[ -n string ]     //string 的長度大於0
[ -z string ]     //string 的長度為0
 string1=string2    //字串相等
 string1!=string2    //字串不相等
[ int1 -gt int2 ]   //int1>int2      greater than
[ int1 -ge int2 ]   //int1>=int2     greater equal
[ int1 -eq int2 ]   //int1=int2        equal
[ int1 -ne int2 ]   //int1!=int2      not equal
[ int1 -le int2 ]   //int1<=int2         less equal
[ int1 -lt int2 ]   //int1<int2       less than

(3)符串比較
[ "$a" = "$b" ]
[ -n "$a" ]和 [ "$a" ]一樣 判斷字串$a是否為空白
[[ "$a" == *"redhat"* ]]和[[ "$a" = *"redhat"* ]]判斷-在$a中是否含有redhat字串

(4)if後接的是命令 &&和||
if rpm -q gcc && id tom||echo "sss"  // &&如果前面的命令執行成功則執行&&後的命令否則執行||後面的命令

4.sed

sed -ri /^#ServerName.*:80$/s/^#// /etc/selinux/config  //找出/etc/seliunx/config檔案中以#ServerName開頭以:80結尾的行並將#替換成空白

5.

df -Th|grep "/$"|awk ‘{print $6}‘|sed ‘s/%//‘  //df後截取某個欄位並替換

6.

 

自學shell指令碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.