我是 bash 脚本的新手,我正在尝试制作询问“数据库名称”的脚本,如果数据库名称为空,他会再次询问,直到用户写一些东西。
我的代码是:
echo "Enter DB name"
read dbname
db_name="$dbname"
if [ -z $db_name ]
then
echo "DB Name can't be empty"
else
mysql -u root -p$mroot_pass -e "CREATE DATABASE IF NOT EXISTS $db_name;"
echo "DB Name set to $db_name"
fi
有什么建议么?我试图在网上找到一些答案,但没有找到解决方案
谢谢。
最佳答案
您可以使用 while 循环进行循环,直到用户提供有效输入。
所以像:
while [ -z $db_name ]; do
echo "Enter DB name"
read db_name
done
# Do cool thing with $db_name
如果您想告诉用户他们的输入无效,您可以将验证移到循环中。
while true; do
echo "Enter DB name"
read db_name
if [ -z $db_name ]; then
echo "DB name can't be empty"
continue # Go to the top of the loop
fi
break # Valid input given so exit the loop.
done
# Do cool thing with $db_name
请注意,使用 continue 和 break 减少了代码缩进。
(顺便说一句,您混合了 dbname 和 db_name 变量名)
关于linux - 如果 read var 为空,则返回以在 bash 中再次提问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62280490/