我正在尝试添加一个脚本我正在写输入的限制,用户只能输入9或10个字符,我这样设置它但是当我运行它时,它不能像我一样工作想要它。即使我只输了一个数字,我输入的所有内容都会返回10个字符。我的代码出了什么问题?
#!/bin/bash
#
echo "Please input numbers only"
read inputline
if read -n10 inputline
then
echo "10 chars"
else
if read -n9 inputline
then
echo "9 chars"
else
echo "invalid input length"
fi
答案 0 :(得分:3)
您的脚本要求输入三次。我假设以下内容更接近您的意图:
#!/bin/bash
read -p "Please input numbers only " inputline
len=${#inputline}
if (( len == 9 || len == 10 ))
then
echo "$len chars"
else
echo "invalid input length"
fi
-n
的{{1}}选项将输入限制为指定的字符数,但接受该长度而不按Enter键。按Enter键可以输入更少的数量。我发现它对read
很有用,但很少有用。
答案 1 :(得分:1)
使用偏移参数扩展将它们输入的内容截断为最多10个字符,如下所示:
$ num="123456789012"; echo ${num::10}
1234567890