shell程式設計100例(6 10)

2021-09-29 07:18:58 字數 2979 閱讀 8731

6、猜數字遊戲

#!/bin/bash

# 指令碼生成乙個 100 以內的隨機數,提示使用者猜數字,根據使用者的輸入,提示使用者猜對了,

# 猜小了或猜大了,直至使用者猜對指令碼結束。

# random 為系統自帶的系統變數,值為 0‐32767的隨機數

# 使用取餘演算法將隨機數變為 1‐100 的隨機數

num=$[random%100+1]

echo

"$num"

# 使用 read 提示使用者猜數字

# 使用 if 判斷使用者猜數字的大小關係:‐eq(等於),‐ne(不等於),‐gt(大於),‐ge(大於等於),

# ‐lt(小於),‐le(小於等於)

while:do

read -p "計算機生成了乙個 1‐100 的隨機數,你猜: " cai

if[$cai -eq $num

]then

echo

"恭喜,猜對了"

exit

elif

[$cai -gt $num

]then

echo

"oops,猜大了"

else

echo

"oops,猜小了"

fidone

7、檢測本機當前使用者是否為超級管理員,如果是管理員,則使用 yum 安裝 vsftpd,如果不是,則提示您非管理員(使用字串對比版本)

#!/bin/bash

# 檢測本機當前使用者是否為超級管理員,如果是管理員,則使用 yum 安裝 vsftpd,如果不

# 是,則提示您非管理員(使用字串對比版本) if[

$user

=="root"

]then

yum ‐y install vsftpd

else

echo

"您不是管理員,沒有許可權安裝軟體"

fi

8、檢測本機當前使用者是否為超級管理員,如果是管理員,則使用 yum 安裝 vsftpd,如果不是,則提示您非管理員(使用 uid 數字對比版本)

#!/bin/bash

# 檢測本機當前使用者是否為超級管理員,如果是管理員,則使用 yum 安裝 vsftpd,如果不

# 是,則提示您非管理員(使用 uid 數字對比版本)if[

$uid -eq 0 ]

;then

yum ‐y install vsftpd

else

echo

"您不是管理員,沒有許可權安裝軟體"

fi

9、編寫指令碼:提示使用者輸入使用者名稱和密碼,指令碼自動建立相應的賬戶及配置密碼。如果使用者不輸入賬戶名,則提示必須輸入賬戶名並退出指令碼;如果使用者不輸入密碼,則統一使用預設的 123456 作為預設密碼。

#!/bin/bash

# 編寫指令碼:提示使用者輸入使用者名稱和密碼,指令碼自動建立相應的賬戶及配置密碼。如果使用者

# 不輸入賬戶名,則提示必須輸入賬戶名並退出指令碼;如果使用者不輸入密碼,則統一使用默

# 認的 123456 作為預設密碼。

read -p "請輸入使用者名稱: " user

#使用‐z 可以判斷乙個變數是否為空,如果為空,提示使用者必須輸入賬戶名,並退出指令碼,退出碼為 2

#沒有輸入使用者名稱指令碼退出後,使用$?檢視的返回碼為 2

if[ -z $user];

then

echo

"您不需輸入賬戶名"

exit 2

fi#使用 stty ‐echo 關閉 shell 的回顯功能

#使用 stty echo 開啟 shell 的回顯功能

stty -echo

read -p "請輸入密碼: " pass

stty echo

pass=

$useradd

"$user"

echo

"$pass"

|passwd ‐‐stdin "$user"

10、輸入三個數並進行公升序排序

#!/bin/bash

# 依次提示使用者輸入 3 個整數,指令碼根據數字大小依次排序輸出 3 個數字

read -p "請輸入乙個整數:" num1

read -p "請輸入乙個整數:" num2

read -p "請輸入乙個整數:" num3

# 不管誰大誰小,最後都列印 echo "$num1,$num2,$num3"

# num1 中永遠存最小的值,num2 中永遠存中間值,num3 永遠存最大值

# 如果輸入的不是這樣的順序,則改變量的儲存順序,如:可以將 num1 和 num2 的值對調

tmp=0

# 如果 num1 大於 num2,就把 num1 和和 num2 的值對調,確保 num1 變數中存的是最小值if[

$num1 -gt $num2];

then

tmp=

$num1

num1=

$num2

num2=

$tmp

fi# 如果 num1 大於 num3,就把 num1 和 num3 對調,確保 num1 變數中存的是最小值if[

$num1 -gt $num3];

then

tmp=

$num1

num1=

$num3

num3=

$tmp

fi# 如果 num2 大於 num3,就把 num2 和 num3 對標,確保 num2 變數中存的是小一點的值if[

$num2 -gt $num3];

then

tmp=

$num2

num2=

$num3

num3=

$tmp

fiecho

"排序後資料(從小到大)為:$num1,$num2,$num3"

shell程式設計100例 6 10

6 猜數字遊戲 bin bash num ra ndom echo random 100 1 echo rando mech o num while doread p 計算機生成了乙個 1 100 的隨機數,你猜 cai if cai eq num then echo 恭喜,猜對了 exit eli...

shell程式設計100例(3)

11 石頭 剪刀 布遊戲 bin bash game 石頭 剪刀 布 num katex parse error expected eof got at position 12 random 3 生成0到2的乙個隨機數 com echo 請根據下列提示選擇您的出拳手勢 echo 1.石頭 echo ...

shell程式設計100例(4)

16 進度條,動態時針版本 定義乙個顯示進度的函式,螢幕快速顯示 bin bash rotate line rotate line 17 99 乘法表 bin bash for i inseq 9 i從1到9取值的迴圈 dofor j inseq i j從1到9 取值的迴圈 doecho n j j...