shell指令碼備忘

來源:互聯網
上載者:User
linux下常用的指令碼包括 bash 和shell
#!/bin/bashecho "hello bash"  #display one message

將以上內容儲存為一個文字檔,名為me。副檔名任意,但常用 .sh作為副檔名。

執行命令 chmod a+x me 命令,為me 添加執行許可權。然後在Ternimal 中運行該指令碼

 ./mehello bash

2 擷取輸入參數

$n  n為1-9自然數,代表輸入中的第n個參數

#!/bin/bashecho $1echo $2echo $3執行該指令碼,輸出為:./me i love youiloveyou

3 定義變數

指派陳述式中不能有空格,引用變數時只需變數前加上$符號即可。

為避免混淆,常常使用雙引號包含要引用的變數

#!/bin/bashA=bAll = allecho "$A"llecho All執行該指令碼,輸出為:./mebllall
4 條件判斷

if [ "$1" = "normal" ]then echo "this is normal case"elif [ -z "$1" ]then echo "no input, ignal..."fi
5 while [] ...do...donw 語句

#!/bin/bashecho "please use add or delete or exit"ACTION="default"while [ -n $ACTION ]do    read ACTION    case $ACTION in        add)            echo "add somebody"            ;;        delete)            echo "delete somebody"            ;;        exit)            echo "complete"            break            ;;        *)            echo "invalide action, please re-enter"            ;;    esacdone
6 for 迴圈

for 一般和in聯合作用,用於從某個集合中逐個取出元素並對期進行操作,如下代碼所示

#!/bin/bashfor X in 1 2 3 4 5 hellodoecho $Xdone

再舉一個

`符號是!符號左邊的鍵。

for X in `ls`doecho `basename $X`echo `dirname $X`done uname

for語句和if語句為例

功能:給目前的目錄下沒有副檔名的檔案加上 .txt副檔名

#!/bin/bash#rename files without ext name to txt file.for X in `ls`do     Base="`basename $X`"    if [ -z `echo $Base | grep "\."` ]    then        `mv $Base $Base.txt`        echo $Base    fidone

7函數
#!/bin/bashstrcat(){    OUT="$1"" ""$2"    return 0}strcat2(){    echo "$1"" ""$2"    return 3}A="bird"B="mouse"OUT=""strcat $A $Becho $OUTOUT2=`strcat2 $A $B`echo $? #//上一個命令的返回結果echo $OUT2#執行該指令碼,輸出為:./mebird mouse3bird mouse

定義函數時,不需要定義參數,直接使用$1,$2代表第n個參數

可以使用return返回整數數值,不能返回字串,不寫return 預設是0

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.