亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 如何判斷變量為特殊符號 [打印本頁]

作者: shintoky    時間: 2014-05-08 12:26
標題: 如何判斷變量為特殊符號
如下所示  請教如何判斷 變量a 是否為 特殊符號 * ??
因為我需要對特殊符號進行處理
root@xxxx-linux]# cat attri.list |awk '{print $2}'
*
yes
yes

root@xxxx-linux]# a=`cat attri.list |awk '{print $2}'|head -1 `
*


作者: 關陰月飛    時間: 2014-05-08 14:19
本帖最后由 關陰月飛 于 2014-05-08 14:20 編輯
  1. grep -q '^*$' <<<"$a"  &&   echo '$a 值為 * '
復制代碼

作者: seesea2517    時間: 2014-05-08 14:30
shintoky 發(fā)表于 2014-05-08 12:26
如下所示  請教如何判斷 變量a 是否為 特殊符號 * ??
因為我需要對特殊符號進行處理
root@xxxx-linux]# c ...



好像這樣就可以了:
  1. [seesea@UC ~]# a='*'   
  2. [seesea@UC ~]# echo "$a"
  3. *
  4. [seesea@UC ~]# [ "$a" = "*" ] && echo "=" || echo "<>"
  5. =
復制代碼

作者: su8610    時間: 2014-05-08 14:31
回復 1# shintoky


    如果只是*,那grep '*'或者grep \*不就可以? 但是如果還要判斷?\$這些多個的特殊符號,就不知道怎么弄了,求高手指點
作者: shintoky    時間: 2014-05-08 14:58
回復 2# 關陰月飛

是這樣的,腳本打印$b 無論如何打印不出符號“*”

cat 1|while read entry
do
{
a=`echo $entry|awk '{print $1}'`
b=`echo $entry|awk '{print $2}'`
echo $b
}
done

[root@-linux ]# cat 1
Host *
ation yes
sted yes
[root@-linux ]#
作者: su8610    時間: 2014-05-08 16:30
回復 5# shintoky


    給你的$entry加上雙引號,還有$b也加上雙引號,就可以打印*了
作者: shintoky    時間: 2014-05-08 16:46
回復 6# su8610


    謝謝!  還有個小問題,
當 b=`echo "$entry"|awk '{$1="";print}'`
打印 “$b"
echo \"$b\"

$b前面總有一個空格?


" 0"

" 2400"

" yes"

" no"
作者: 用戶名注冊后不能更改    時間: 2014-05-08 23:39
shintoky 發(fā)表于 2014-05-08 16:46
回復 6# su8610

    謝謝!  還有個小問題,
當 b=`echo "$entry"|awk '{$1="";print}'`
打印 “$b"
echo \"$b\"

$b前面總有一個空格?


" 0"

" 2400"

" yes"

" no"


awk的OFS。
最后的輸出實質上是:
$1+OFS+$2
作者: su8610    時間: 2014-05-09 14:16
回復 7# shintoky


    為什么echo $b那里的雙引號要反義呢?加反義就變成將雙引號括在$b的內容里面了,像這樣詞首的空格是會打印出來的。如果不反義就不會了
作者: daxuewuhen2014    時間: 2014-05-11 20:31
num=`cat attri.list |awk '{print $2} | grep “*”`
[ $a == “*” ] && echo "ok" || echo "cuowu"




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2