主页 > 知识库 > linux shell实现获取用户输入指定范围的单个字符的两种方法

linux shell实现获取用户输入指定范围的单个字符的两种方法

热门标签:百度地图标注错了有责任吗 揭阳智能电话机器人推荐 江苏云电销机器人公司 客服外呼系统怎么样 地图标注员都是年轻人 河南信誉好的不封卡电话外呼系统 华锋e路航港口地图标注 如果做线上地图标注 打电话机器人接我是他的秘书

方法一:

复制代码 代码如下:

echo `echo {a..z}``echo {A..Z}` > /tmp/letterfile
while read -p "please input a letter: " letter
do
    ((`awk -v var="$letter" 'BEGIN{print length(var)}'` == 1)) grep -q $letter /tmp/tmpfile break
done
rm -f /tmp/letterfile
echo "you input letter $letter "

[root@station1 ~]# cat a.sh

复制代码 代码如下:

echo `echo {a..z}``echo {A..Z}` > /tmp/letterfile
while read -p "please input a letter: " letter
do
((`awk -v var="$letter" 'BEGIN{print length(var)}'` == 1)) grep -q $letter /tmp/tmpfile break
done
rm -f /tmp/letterfile
echo "you input letter $letter "

[root@station1 ~]# chmod +x a.sh
[root@station1 ~]# ./a.sh
please input a letter: 123
please input a letter: abc
please input a letter: 4
please input a letter:
please input a letter: (
please input a letter: a
you input letter a
[root@station1 ~]#

最初使用expr length $letter 替代 wk -v var="$letter" 'BEGIN{print length(var)}'的,但是,当输入*等特殊字符时,会报错。
如下:
[root@station1 ~]# cat data

复制代码 代码如下:

while read -p "please input a letter: " letter
do
((`expr length $letter` == 1)) expr $letter : [[:alnum:]] > /dev/null break
done
echo "you input letter $letter "

[root@station1 ~]# bash data
please input a letter: 123
please input a letter: abc
please input a letter: a
you input letter a
[root@station1 ~]# bash data
please input a letter: *
expr: 语法错误
data: line 3: ((: == 1: syntax error: operand expected (error token is "== 1")
please input a letter:

来看方法二:

复制代码 代码如下:

while read -p "please input a letter: " letter
do
[[ `echo $letter | awk '/^[[:alpha:]]$/{print "1"}'` -eq 1 ]] break
done
echo "you input letter $letter "

如下:
[root@station1 ~]# cat b.sh

复制代码 代码如下:

while read -p "please input a letter: " letter
do
[[ `echo $letter | awk '/^[[:alpha:]]$/{print "1"}'` -eq 1 ]] break
done
echo "you input letter $letter "

[root@station1 ~]# chmod +x b.sh
[root@station1 ~]# ./b.sh
please input a letter: *
please input a letter: abc
please input a letter: 234
please input a letter: )
please input a letter: T
you input letter T
[root@station1 ~]#

您可能感兴趣的文章:
  • Linux使用sed命令替换字符串教程
  • linux特殊字符及其作用大全
  • linux shell字符串内置的常用操作(获取长度、查找、替换)
  • Linux shell脚本中字符串连接的方法
  • linux bash字符串处理大全
  • Linux 中删除文本中的回车字符的方法

标签:淘宝邀评 马鞍山 邵阳 金昌 许昌 赤峰 娄底 巴彦淖尔

巨人网络通讯声明:本文标题《linux shell实现获取用户输入指定范围的单个字符的两种方法》,本文关键词  linux,shell,实现,获取,用户,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《linux shell实现获取用户输入指定范围的单个字符的两种方法》相关的同类信息!
  • 本页收集关于linux shell实现获取用户输入指定范围的单个字符的两种方法的相关信息资讯供网民参考!
  • 推荐文章