#/bin/bash
echo "This message may not be more than 8 characters"
read detect
如何检测字母的数量?它会是一个 IF 语句吗?
if #detect var
then
else
fi
编辑:我怎样才能让它重复,直到用户输入正确的消息?
#/bin/bash
echo "This message may not be more than 8 characters"
read detect
如何检测字母的数量?它会是一个 IF 语句吗?
if #detect var
then
else
fi
编辑:我怎样才能让它重复,直到用户输入正确的消息?
您可以像这样使用if-then-else-fi:
exit 1
一般表示失败,exit 0
一般表示成功。无论哪种情况,您的脚本都会在exit
遇到时立即结束,因此请适当地使用它们。您还可以使用隐含的 if-then,这在 shell 语言中是相当独特的:
如果您不需要错误消息,
{ ... }
则单个命令不需要大括号,例如:可以用来说“如果名为 detect 的变量 > 8 则退出”。
加强流程
通常,只允许用户一次输入字符串的机会被认为是不礼貌的。礼貌的方法是在告诉他们它需要不超过 8 个字符后再次询问字符串。例如:
在这种情况下,程序会一直请求输入,直到
StringVar
获得变量并且它大于或等于 1 并且小于或等于 8时while
才会使用命令中断外观break
。或者,用户可以按Ctrl+C/kbd> 来终止 bash 脚本。
简洁的线条:
...可以像这样变得荒谬冗长:
虽然不是错误的,但它对程序员和系统的时间都是浪费的。
我假设您想一次又一次地要求用户输入,直到输入的长度小于 8 个字符。如果是这样,您可以使用
while
循环而不是if-else
语句。这样,循环将无限次继续,直到输入的长度小于 8 个字符。只有当“输入”的长度小于 8 个字符时,脚本才会继续。代码将类似于:此外,如果您从根 (
/
) 文件夹运行脚本,那么 shebang#!bin/bash
可能会起作用(您在原始帖子中提到过)但如果您从其他地方运行它,请包括解释器的绝对路径,即/bin/bash
,因此修改 shebang到#!/bin/bash
.