麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Linux Shell > 正文

linux shell實現獲取用戶輸入指定范圍的單個字符的兩種方法

2020-07-27 19:23:22
字體:
來源:轉載
供稿:網友

方法一:

復制代碼 代碼如下:

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 ~]#

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91九色福利| 精品成人网 | 九一传媒在线观看 | 国产黄色录像片 | 久久蜜桃精品一区二区三区综合网 | 日本中文字幕久久 | 精品一区二区三区免费爱 | 欧美亚洲国产成人 | 亚洲第一成人在线 | 欧美性生交xxxxx久久久 | 精品国产高清一区二区三区 | 日本免费不卡一区二区 | 久久精热| 国产亚洲精品成人 | 午夜国产小视频 | 天天看天天摸天天操 | 亚洲第一成av人网站懂色 | 国产一级aaa全黄毛片 | 亚洲aⅴ免费在线观看 | 国产精品久久久久久久久久了 | 欧美日韩在线看片 | 国产精品一区二区三区在线 | 欧美成人精品不卡视频在线观看 | 国产成人在线免费视频 | 亚洲第一视频 | 中文字幕极速在线观看 | 午夜视频在线免费观看 | 一级毛片真人免费播放视频 | 国产一区二区精品免费 | 亚洲影视中文字幕 | 免费国产一区二区视频 | 粉色视频污| 欧美视频在线观看一区 | 久久久久久久久久美女 | 4399一级成人毛片 | av电影直播| 久久成人福利 | 亚洲啪| 99国产精成人午夜视频一区二区 | 欧美精品1区 | 天天撸日日夜夜 |