Linux系統學習筆記之 1 一個簡單的shell程式

來源:互聯網
上載者:User

標籤:

不看筆記,長時間不用自己都忘了,還是得經常看看筆記啊。

 

一個簡單的shell程式

shell結構1、#!指定執行指令碼的shell2、#注釋行3、命令和控制結構建立shell程式的步驟第一步:建立一個包含命令和控制結構的檔案第二步:修改這個檔案的許可權使它可以執行。 使用chmod u+x第三步:執行shell sh /test/example.sh Shell變數變數:是shell傳遞資料的一種方法,用來代表每個取值的符號名shell有兩類變數:臨時變數和永久變數臨時變數是shell程式內部定義的,其使用範圍僅限於定義它的程式,對其它程式不可見。包括 使用者自訂變數、位置變數。永久變數是環境變數,其值不隨shell指令碼的執行結束而消失。  使用者自訂變數使用者定義的變數有字母或底線開頭,由字母,數字或底線序列組成,並且大小寫字母意義不 同,永久變數長度沒有限制。在使用變數值時,要在變數名前加上首碼“$”  設定和使用變數設定變數:習慣上用大寫字母來命名變數,變數名只能以字母表中的字元開頭,不能用數字。變數賦值:賦值號"="兩邊應沒有空格定時賦值,NUM=1將一個命令的執行結果賦給變數,如:TIME=`date`將一個變數賦給另一個變數,如:A=$B使用echo 命令查看變數值。例如:echo $A列出所有變數:set包含多個字的變數$NAME=Mike Ron運行時出錯,應該為:$NAME="Mike Ron"或$NAME=‘Mike Ron‘單引號和雙引號的區別是,單引號裡的變數不會被解析。刪除變數:unset NAME 位置變數和特殊變數shell解釋執行使用者命令時,將命令列的第一個部分作為命令名,其他部分作為參數。由出現在 命令列上的位置確定的參數稱為位置參數。例如:ls -l file1 file2 file3$0這個程式的檔案名稱ls -l$n這個程式的第n個參數值,n=1--9 特殊變數$*這個程式的所有參數$#這個程式參數的個數$$這個程式的PID$!執行上一個後台命令的PID$?執行上一個命令的傳回值 0代表成功   非0代表不成功  shell命令read命令:從鍵盤讀入資料,賦給變數如:red USERNAMEread的例子:#!/bin/shread first second thirdecho "您輸入的第一個參數$first"echo "您輸入的第一個參數$second"echo "您輸入的第一個參數$third" expr命令shell變數的算術運算expr命令:對整數型變數進行算術運算例如:expr 3 + 5   #加號左右必須有空格expr $varl - 5expr $v1 / $v2expr $v1 \* 10複雜的expr命令複雜的運算 expr ` expr 5 + 7 ` / $var1將運算結果賦予變數:var4=` expr $va1 / $var2 `例:#!/bin/sha=10b=20c=30v1=`expr $a + $b + $c`echo $v1v2=`expr $c / $b`echo $v2v3=`$a \* $b`v4=`expr $a + $c / $b`echo $v4 變數測試語句變數測試語句:使用者測試變數是否相等、是否為空白、檔案類型等格式:test 測試條件測試範圍:整數、字串、檔案字串測試:test str1=str2     測試字串是否相等test str1!=str2    測試字串是否不相等test str1    測試字串是否不為空白test -n str1       測試字串是否不為空白test -z str1       測試字串是否為空白整數測試:test init1 -eq int2  測試整數是否相等test init1 -ge int2  測試int1是否>=int2test init1 -gt int2  測試int1是否>int2test init1 -le int2  測試int1是否<=int2test init1 -lt int2  測試int1是否<int2test init1 -ne int2  測試整數是否不相等檔案測試test -d  file   指定檔案是否目錄test -f  file   指定檔案是否常規檔案test -x  file   指定檔案是否可執行test -r  file   指定檔案是否可讀test -w  file   指定檔案是否可寫test -a  file   指定檔案是否存在test -s  file   指定檔案是否非0變數測試語句一般不單獨使用,一般作為if語句的測試條件,如:if test -d $1 then.....fi變數測試語句可用[]進行簡化,如test -d $1 等價於[-d $1]      #!/bin/sh#比較兩個字串是否相等的程式read -p "請輸入第一個字串:" str1read -p "請輸入第二個字串:" str2  if [ -n $str1 ] ; thenecho "您輸入的第一個字串不為空白,值為:" $str1elseecho "您輸入的第一個字串為空白"fi if [ -n $str2 ] ; thenecho "您輸入的第二個字串不為空白,值為:" $str2elseecho "您輸入的第二個字串為空白"fi if test $str1 = $str2 ; thenecho "兩個字串相等"elseecho "兩個字串不相等"fi  1、查看當前系統的環境變數和自己定義的變數set命令2、刪除一個變數unset 變數名例如:unset NAME

Linux系統學習筆記之 1 一個簡單的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.