Linux Bash Shell 學習筆記

2021-06-16 18:00:13 字數 1310 閱讀 4398

1、bash指令碼的引數處理

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

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

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

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

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

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

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

#!/bin/bash

i = 1;

while (($#> 0))

do echo $i, $1

shift

let i=i+1

done

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

11

1, 1

2, 2

3, 3

4, 4

5, 5

6, 6

7, 7

8, 8

9, 9

10, 10

11, 11

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

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

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

echo 使用者名稱:密碼 | chpasswd

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

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

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

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

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

Linux bash shell 使用技巧

使用gnu linux系統使用bash是家常便飯,知道一些bash常用的快捷鍵就顯得非常有必要,bash快捷鍵大全 ctrl a 相當於home鍵,用於將游標定位到本行最前面,回到命令列開始,unix上只能用這個組合鍵 ctrl e 相當於end鍵,即將游標移動到本行末尾,轉到命令行尾,unix上同...

linux bash shell 基本語法

1.read 讀取來自鍵盤的輸入內容賦值給變數,使用方法如下 root dev opt android sdk sdk read var read this is what i get from my keyboard root dev opt android sdk sdk echo this i...

Linux bash shell中變數的設定和使用

給變數賦值直接使用符號 如name kylin 使用這個變數時需要在前邊加上 符號,如echo name,另外,如果變數中的內容比較複雜,使用大括號是比較安全的辦法,如 如果變數所賦值中需要有空格則要加上雙引號或者單引號。雙引號和單引號的區別在於,雙引號中的內容保持原屬性,而單引號中的內容只當做是文...