日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

在編寫腳本的過程中,很多時(shí)候都需要我們?nèi)ピO(shè)置IP地址,密碼之類的變量,為了易用性,我們對(duì)這些變量的值都會(huì)提供選擇范圍或者設(shè)置隨機(jī)值以及默認(rèn)值等。

那么如果我們要判斷使用腳本的人有沒有輸入密碼應(yīng)該怎么做呢?下面看一個(gè)常見的例子:

#設(shè)置與檢測(cè)數(shù)據(jù)庫(kù)root密碼配置

root=`openssl rand -base64 8|md5sum|cut -c 1-8 `

read -p "請(qǐng)輸入密碼[ root ],默認(rèn)[ ${root} ]:" root_pass

然后我們運(yùn)行這段:

Shell腳本技巧-優(yōu)雅的判斷用戶輸入值并設(shè)置默認(rèn)值

運(yùn)行結(jié)果

此時(shí)會(huì)出現(xiàn)兩個(gè)情況:

  1. 用戶輸入了自定義的密碼
  2. 用戶沒有輸入任何信息

首先我們對(duì)腳本進(jìn)行完善一下:

#設(shè)置與檢測(cè)數(shù)據(jù)庫(kù)root密碼配置

root=`openssl rand -base64 8|md5sum|cut -c 1-8 `

echo -e "請(qǐng)輸入密碼[ root ],默認(rèn)[ ${root} ]:n"

read root_pass

echo -e "當(dāng)前設(shè)置的密碼: [ $root_pass ]"

繼續(xù)運(yùn)行

Shell腳本技巧-優(yōu)雅的判斷用戶輸入值并設(shè)置默認(rèn)值

執(zhí)行結(jié)果

此時(shí)可以看到,如果直接回車會(huì)出現(xiàn)一個(gè)空白的現(xiàn)象,而只有用戶輸入的情況下才能出現(xiàn)密碼,看到這有人會(huì)說:你都沒設(shè)置,有密碼才怪。的確,我還沒設(shè)置,下面設(shè)置一下:

#設(shè)置與檢測(cè)數(shù)據(jù)庫(kù)root密碼配置

root=`openssl rand -base64 8|md5sum|cut -c 1-8 `

echo -e "請(qǐng)輸入密碼[ root ],默認(rèn)[ ${root} ]:n"

read root_pass

if [[ -z "$root_pass" ]];then

root_pass=$root

fi

echo -e "當(dāng)前設(shè)置的密碼: [ $root_pass ]"

然后執(zhí)行:

Shell腳本技巧-優(yōu)雅的判斷用戶輸入值并設(shè)置默認(rèn)值

出現(xiàn)了默認(rèn)(隨機(jī))密碼

然后到這里就解決了,看到這可能又有人迷惑了?就這?

別急,繼續(xù)往下看。

上面這個(gè)情況是只設(shè)置一個(gè)變量,但是如果需要設(shè)置好多呢?應(yīng)該怎么辦?一個(gè)設(shè)置加一個(gè)判斷?

NONONO,這樣太麻煩了,下面介紹一個(gè)比較簡(jiǎn)單的方法:定義函數(shù)

函數(shù)內(nèi)容如下:

input_check(){

#1參未需要設(shè)置的變量值[提供默認(rèn)變量]

#2參為這個(gè)參數(shù)的備注信息[例如:數(shù)據(jù)庫(kù)的root密碼]

#3參為一個(gè)隨機(jī)/默認(rèn)值

#4參為這個(gè)變量名

if [[ -z "$1" ]];then

echo -e "${red_zt}檢測(cè)到${2}沒有輸入,已使用默認(rèn)值[ ${3} ]${end}"

eval `echo "$4=$3"`

else

eval `echo "$4=$1"`

fi

}

如何使用呢?我們把上面的案例放進(jìn)去:

input_check(){

#1參未需要設(shè)置的變量值[提供默認(rèn)變量]

#2參為這個(gè)參數(shù)的備注信息[例如:數(shù)據(jù)庫(kù)的root密碼]

#3參為一個(gè)隨機(jī)/默認(rèn)值

#4參為這個(gè)變量名

if [[ -z "$1" ]];then

echo -e "${red_zt}檢測(cè)到${2}沒有輸入,已使用默認(rèn)值[ ${3} ]${end}"

eval `echo "$4=$3"`

else

eval `echo "$4=$1"`

fi

}

input(){

echo -e "$1"

read $2

}

root=`openssl rand -base64 8|md5sum|cut -c 1-8 `

input "請(qǐng)輸入密碼[ root ],默認(rèn)[ ${root} ]:" root_pass

input_check "$root_pass" "數(shù)據(jù)庫(kù)[root]密碼" "$root" "root_pass"

然后執(zhí)行:

Shell腳本技巧-優(yōu)雅的判斷用戶輸入值并設(shè)置默認(rèn)值

通過函數(shù)判斷并設(shè)置變量值

有了這個(gè)函數(shù)之后,我們每次需要判斷一個(gè)值只需要按照傳參要求去調(diào)用即可實(shí)現(xiàn)默認(rèn)值和自定義值的配置,例如:

#設(shè)置與檢測(cè)數(shù)據(jù)庫(kù)root密碼配置

root=`openssl rand -base64 8|md5sum|cut -c 1-8 `

input "請(qǐng)輸入密碼[ root ],默認(rèn)[ ${root} ]:" root_pass

input_check "$root_pass" "數(shù)據(jù)庫(kù)[root]密碼" "$root" "root_pass"

 

#數(shù)據(jù)庫(kù)初始權(quán)限配置

input "是否關(guān)閉[ root ]用戶遠(yuǎn)程登錄[ y/n ],默認(rèn)[ y ]" dislogin

input_check "$dislogin" "數(shù)據(jù)庫(kù)[ root ]用戶登錄權(quán)限" "y" "dislogin"

 

#是否刪除測(cè)試數(shù)據(jù)庫(kù)

input "是否刪除[ test ]數(shù)據(jù)庫(kù)[ y/n ],默認(rèn)[ y ]" rm_db

input_check "$rm_db" "刪除[ test ]數(shù)據(jù)庫(kù)確認(rèn)" "y" "rm_db"

 

#結(jié)果匯總

red_z_green_z "數(shù)據(jù)庫(kù)[ root ]用戶密碼:" "[ $root_pass ]"

red_z_green_z "允許[ root ]遠(yuǎn)程登錄:" "[ $dislogin ]"

red_z_green_z "是否刪除[ test ]數(shù)據(jù)庫(kù):" "[ $rm_db ]"

input "是否繼續(xù)[回車?yán)^續(xù)]" Y

是不是打開了新大陸呢?其實(shí)還可以繼續(xù)改進(jìn)這個(gè)函數(shù),想了解更多的話關(guān)注我等待更新吧。

如果這篇文章能夠幫助到你的話請(qǐng)給個(gè)支持,來個(gè)三連吧;

如果你還有更好的解決方法可以在評(píng)論區(qū)展現(xiàn)你的強(qiáng)大技術(shù)能力,讓大家一起學(xué)習(xí)。

關(guān)注我,帶你進(jìn)入Shell腳本的世界,點(diǎn)擊下方“了解更多”即可看到我的腳本庫(kù)(有很多不錯(cuò)的函數(shù))。

分享到:
標(biāo)簽:Shell
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定