Linux Bash Shell 學習筆記

來源:互聯網
上載者:User

1、bash指令碼的參數處理

       BASH的參數可以用$加數字編號來訪問,其中:

       $#代表指令碼的參數個數

       $1代表指令碼的第1個參數

       $2代表指令碼的第2個參數

       以此類推,$n代表指令碼的第n個參數,但是,不能用$10來訪問第十個參數。

        如果遇到參數超過10個的情況,必須處理或儲存第一個參數$1,然後使用shift命令刪除參數1並將所有剩餘的參數下移一位,因此

$10就變成了$9,同時,$#的值將被您更新以反映參數的剩餘量。下面的例子用來遍曆指令碼的參數列表:        

#!/bin/bashi = 1;while (($#> 0))do    echo $i, $1    shift    let i=i+1done

存為test.sh,加上可執行許可權,然後執行./test.sh  1 2 3 4 5 6 7 8 9 10,結果如下:

111, 12, 23, 34, 45, 56, 67, 78, 89, 910, 1011, 11

 

 

2、shell指令碼自動修改使用者口令

oz想我寫個指令碼恢複預設設定,其中有一項就是要恢複成預設密碼,在這之前,偶只曉得該密碼是passwd,然後就會顯示喊你輸入舊密碼,新密碼,是一種與使用者互動的形式。但素偶的預設密碼其實是固定的,不用互動應該就可以實現,用指令碼應該是可以實現的。

最開始在網上查,大部分都是看到用expect來處理使用者互動,但素用在偶這兒感覺有點大材小用,於是呼叫了下師兄,師兄也不清楚,於是一起查,最後實踐出一條命令是可行的,很簡單

echo 使用者名稱:密碼 | chpasswd

其實我用了也不清楚到底是什麼意思,因為偶對shell命令不熟,管道這類的也不大清楚。師兄解釋了下:chpasswd就是通過使用者輸入使用者名稱:密碼來更改一組使用者的密碼。echo相當於用echo的輸出做為chpasswd的輸入。

命令很簡單,道理也很簡單,就怕不知道,想不到!

 

 

3、替換檔案中的某一行內容

替換a.txt檔案中的第二行為aaaa:

sed -e '2s/*/aaaa:g' a.txt
 

     

 

相關文章

聯繫我們

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