濮阳杆衣贸易有限公司

主頁 > 知識庫 > linux shell實現(xiàn)獲取用戶輸入指定范圍的單個字符的兩種方法

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

熱門標簽:百度地圖標注錯了有責任嗎 揭陽智能電話機器人推薦 江蘇云電銷機器人公司 客服外呼系統(tǒng)怎么樣 地圖標注員都是年輕人 河南信譽好的不封卡電話外呼系統(tǒng) 華鋒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字符串內(nèi)置的常用操作(獲取長度、查找、替換)
  • Linux shell腳本中字符串連接的方法
  • linux bash字符串處理大全
  • Linux 中刪除文本中的回車字符的方法

標簽:淘寶邀評 馬鞍山 邵陽 金昌 許昌 赤峰 婁底 巴彥淖爾

巨人網(wǎng)絡通訊聲明:本文標題《linux shell實現(xiàn)獲取用戶輸入指定范圍的單個字符的兩種方法》,本文關鍵詞  linux,shell,實現(xiàn),獲取,用戶,;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《linux shell實現(xiàn)獲取用戶輸入指定范圍的單個字符的兩種方法》相關的同類信息!
  • 本頁收集關于linux shell實現(xiàn)獲取用戶輸入指定范圍的單個字符的兩種方法的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    正宁县| 永寿县| 蒙阴县| 若尔盖县| 澄江县| 临桂县| 黄冈市| 眉山市| 巴南区| 绥滨县| 锦屏县| 长葛市| 阿鲁科尔沁旗| 怀来县| 唐河县| 麻江县| 湘西| 桂东县| 深泽县| 泰兴市| 汉川市| 祁阳县| 白朗县| 通道| 剑阁县| 蕉岭县| 舞阳县| 建平县| 司法| 苍梧县| 通州市| 彩票| 太康县| 绍兴市| 云霄县| 新疆| 丽江市| 南靖县| 泰宁县| 普安县| 连山|