所以有人向我展示瞭如何使用條件來測試用戶是否輸入了密碼。 我想進一步採取他們的例子,並使用一個循環(至少這是我認爲這是呼叫)。直到用戶輸入等於
這裏是他們的榜樣:
read -s -p "Enter new password: " NEWPASS
if test "$NEWPASS" = ""; then
echo "Password CAN NOT be blank re-run sshd_config"
exit 1;
fi
退出我希望它繼續要求輸入直到有一些腳本,而不是的。
我要讓這樣的說法,但我做錯了: (現在使用頂部的例子)
的用戶有機會輸入新密碼,並填寫變量值。
read -s -p "Enter new password:" NEWPASS
echo ""
下一部分檢查變量,看看它是否包含一個值,而值爲空它請求用戶填寫無限期的值。 (一個循環)
while [[ -z "$NEWPASS" ]]; do
echo ""
echo "Password CAN NOT be blank"
echo ""
read -s -p "Enter new password:" NEWPASS;
echo ""
done
此行搜索包含一組由另一個文件使用的變量的文件。然後,它在文件中搜索包含PASS行= *(。*什麼意思),然後寫入PASS = $ NEWPASS($ NEWPASS是可變的)
sed -i -e"s/^PASS=.*/PASS=$NEWPASS/" /etc/sshd.conf
謝謝所有幫助,我要去使用它並從中學習。
你能打破你的答案和解釋?我非常喜歡jist,我只是想完全理解它。 – Geofferey
是的。 '-z string'表示如果字符串爲空並且while [[-z「$ NEWPASS」]]'表示運行這個while循環直到'$ NEWPASS'爲空。您的常規閱讀命令在循環內進入。如果用戶按下進入,那麼'$ NEWPASS'仍然是空白的,並再次顯示提示。 Moment用戶在while循環結束時輸入一個值,因爲'$ NEWPASS'變爲非空。運行'男子測試'瞭解更多。 – anubhava