Shell指令碼綜合例項

2021-10-04 15:12:57 字數 2154 閱讀 1729

一、執行指令碼命令彙總

bash text.shchmod a+x text.sh   ./text.sh將當前檔案所在的路徑加入到環境變數中去,即修改環境變數,則可只輸入檔名即能執行檔案

export path=$path:/(軟體的路徑名)

二、shell傳參

指令碼命令列輸入傳參——在執行命令時後加位置引數(利用$0,$1等),示例如下圖:

用read命令傳參(在執行命令後由鍵盤輸入引數

注意:如果指令碼中有輸入語句read a b;執行時輸入4,5,6,則a=4,5,6 而b為空 (注意以空格分隔)

三、常用技巧

1.可以將路徑或檔名設定成變數,使**更簡潔、易維護

2.檔名格式為「檔名_bak_年月日_時分秒」可以如下表示:

四、綜合示例

編寫指令碼程式判斷當前使用者是否為root管理員,如果是,則執行tar對/etc/目錄執行備份。

注意:&>/dev/null指無論正確的還是錯誤的輸出都重定向到空裝置,就是不要輸出資訊。/dev/null表示乙個空裝置。

編寫指令碼程式程式,將當前目錄下所有的.txt檔案更名為.doc檔案

注意:(1)在linux系統中不支援mv *.txt *.doc這樣的更名命令形式,如果需要將檔案成批地更名最好編寫乙個shell指令碼檔案。

(2)在for語句的引數列表中使用了「*」萬用字元。

(3)在程式中用到basename命令,該命令從隨後的檔名剝去指定的字尾。

(4)dirname 獲取檔案的目錄名。使用user.txt檔案中的人員名單,在計算機中自動建立對應的賬戶並配置初始密碼為「123456」。

#!/bin/bash

for i in

`cat user.txt`

douseradd

$iecho 「123456」|

passwd --stdin $i

done

每隔5分鐘檢查指定的使用者是否登入系統。

根據時間備份/var/log 日誌目錄,僅備份周

三、周五的資料

編寫指令碼,檢查密碼,如果使用者三次輸入密碼均錯誤,則退出指令碼

#!/bin/bash

num=3

password=123456 #initial password

sum=0

while

true

doread -p "please input your password:" pass

sum=

$((sum+1))

if[$pass

==$password];

then

#注意then必須接在if語句後面否則報錯

echo

"you are right!"

exit

elif[

$sum -lt 3 ]

;then

continue

else

exit

fidone

shell指令碼例項

1.批量建立10個系統賬號test01 test10,並隨機設定8位數密碼 bin bash for i in seq w 10 do useradd test i echo random madsum cut c 8 tee a passwd.txt stdin test i done 2.在目錄...

Shell 指令碼例項

指令碼內容如下 bin bash action 定義函式,進行操作指南 action 1 database mysql uroot p 1 en e show databases grep e schema v mkdir p mnt sqldump e database name sql case...

Shell指令碼例項

1.寫乙個指令碼,利用迴圈計算10的階乘 bin sh factorial 1 for a in seq 1 10 dofactorial expr factorial a done echo 10 factorial 注 上面有一行,for a in seq 1 10 其中seq 1 10 即列出...