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,另外,如果變數中的內容比較複雜,使用大括號是比較安全的辦法,如 如果變數所賦值中需要有空格則要加上雙引號或者單引號。雙引號和單引號的區別在於,雙引號中的內容保持原屬性,而單引號中的內容只當做是文...