我需要制作一个bash脚本,它接受用户输入并进行一些验证。
输入很小。我只需要让用户选择“是”或“否”以及文件路径,并确保输入确实是文件路径,并且输入是或否。
如何验证用户输入?
答案 0 :(得分:4)
帮助阅读
例如: 第1步。
pete @ ruthie~ $ read -p“是或否:”ANSWER
是或否:是
pete @ ruthie~ $ echo $ ANSWER
是强>
第2步。
case $ANSWER in
Y* | y* ) echo "ANSWER is yes" ;;
N* | n*) echo ANSWER is no;;
*) echo "Unclear Response" ;;
esac
答案是肯定的
或全部在一条线上:
case $ANSWER in Y* | y* ) echo "ANSWER is yes" ;; N* | n*) echo ANSWER is no;; *) echo "Unclear Response" ;; esac
答案是肯定的
有点像::
read -p "Enter File Name :" FILE_TO_CHECK
if [ ! -e "$FILE_TO_CHECK" ]; then
echo -e "There is no file called $FILE_TO_CHECK \n please check spelling"
else
echo "Congratulations found $FILE_TO_CHECK. "
ls -lah $FILE_TO_CHECK
read -p "Process $FILE_TO_CHECK ? Y or N : PROCEED
case $PROCEED in
Y* | y*)
##call function or system command to do something with this data
foo $FILE_TO_CHECK
;;
* )
echo -e "Note $USER\n No action taken by $0 on $FILE_TO_CHECK"
;;
esac
fi
测试命令是你的朋友。你真的需要尽快学习它的方法。
help [
和
help test
“帮助bashthing”命令是一个很好的快速提醒。
另见:Advanced Bash脚本编写指南(ABS) http://tldp.org/LDP/abs/html/
FWIW: 这是一个非常简单的示例,并且不会容纳意外用户输入的方式。 我可能会为每一步调用函数,因为那时我可以有条件地用另一个机会代表用户。
像这样嵌套的案例测试很简单:) ===很难整理并稍后阅读
还有其他方法可以实现所有这些尝试 zenity for GTK style GUI 。
A.B.S很棒,但不要试图一次吃掉它!