getopts實(shí)現(xiàn)模擬mysql參數(shù)登錄

getopts腳本設(shè)置方式

# ":u:p:h:P:" 中開頭的:是指區(qū)分錯(cuò)誤類型
# u: 變量后 : 指使用時(shí)必須有參數(shù)值
# OPTARG 是指系統(tǒng)內(nèi)置變量
while getopts ":u:p:h:P:" opt
do
  case $opt in
    u)
    user=$OPTARG 
    echo "用戶名: ${user}" ;;
    p)
    pwk=$OPTARG
    echo "用戶密碼: ${pwk} " ;;
    h)
    host=$OPTARG
    echo "連接主機(jī)IP為: ${host}" ;;
    P)
    post=$OPTARG
    echo "端口號(hào)為: ${post}" ;;
  esac
done
if [[ $pwk = "" ]];then 
 # -s 指靜默輸入, 不會(huì)在命令行顯示輸出內(nèi)容, -p 指提示信息
  read -s -p "請(qǐng)輸入密碼:" pwk
 # -e -n 設(shè)置為了識(shí)別 \n 
  echo -e -n "\n用戶密碼: ${pwk} \n"   
fi
# 此處為模擬運(yùn)行的方式,僅打印測(cè)試
echo "mysql -u${user} -P${post} -h${host} -p${pwk}"

直接填充密碼型mysql -uyuanyu -P3306 -h10.10.10.10 -pyuanyu

image.png

回車后手動(dòng)輸出sh data.sh -uyuanyu -h10.10.10.10 -P3306 -p
image.png

另外在getopts 中未命中參數(shù)是也有相應(yīng)配置,這里我省略掉了

while getopts ":u:p:h:P:" opt
do
  case $opt in
    u)
    user=$OPTARG 
    echo "用戶名: ${user}" ;;
    ?)
       echo "無效參數(shù)"
       # 此處若有無效參數(shù),選擇直接退出
       # 若想忽略無效參數(shù),繼續(xù)運(yùn)行,則將下面這行注釋掉
       exit 0;
      esac
done
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容