shell script 如何比字串大小 - Linux

Daph Bay avatar
By Daph Bay
at 2012-03-07T00:27

Table of Contents

大家好:

最近在撰寫一個簡單的shell script時遇上一個有趣的問題
這隻shell script是利用bash執行的

功能很簡單:就是比較兩個字串的字典順序大小
經過man bash後得到訊息

string1 == string2
string1 = string2
True if the strings are equal. = should be used with the test
command for POSIX conformance.

string1 != string2
True if the strings are not equal.

string1 < string2
True if string1 sorts before string2 lexicographically.

string1 > string2
True if string1 sorts after string2 lexicographically.

於是我寫下類似以下的code
====
if [ "$str1" < "$str2"]; then
.....
else
....
fi
====
然而它總是在判斷上失敗,並且將 < 符號認定為 I/O redirect

請問是不是我會錯意或是使用錯誤了呢?

--
Tags: Linux

All Comments

Kyle avatar
By Kyle
at 2012-03-10T14:40
When used with [[, The < and > operators sort lexicogr
Anthony avatar
By Anthony
at 2012-03-15T03:24
要用[[ ... ]]
Adele avatar
By Adele
at 2012-03-15T16:45
謝謝樓上!解決了!(居然只是因為這樣 orz....)
Leila avatar
By Leila
at 2012-03-19T02:20
[ ... ] 是sh compatible, [[ ... ]]則只有bash有
上次為了這兩個debug了一個小時....

如何讓兩台mail server同步?

Elma avatar
By Elma
at 2012-03-06T23:39
※ 引述《carlcarl (carl)》之銘言: : 最簡單的作法就用crontab + rsync吧 : 先rsync一份過去 然後接下來定期做rsync 可能5分鐘一次之類的 : 不然可以考慮DRBD : 我沒用過 不過看用途應該是你想要的吧 : http://zh.wikipedia.org/wiki ...

選擇 centos 或 debian

Jack avatar
By Jack
at 2012-03-06T23:28
※ 引述《pgyfr (跑跑)》之銘言: : 時間過得好快, 一下子 Debian 用五年了, 剛好要換機器, 順便再次評估要選擇 : CentOS 6.2 或 Debian 6.0.4 : 依序討論1. 常用軟體 : 2. 安全性 : 3. 虛擬機支援 : 4 ...

pcmanx-gtk2 1.1

Erin avatar
By Erin
at 2012-03-06T23:27
自從在SSD上安裝了64bit的ubuntu10.04之後不管PCman geman都卡卡的 爬文更新到pcmanx-gtk2 1.1 雖然說是有比之前順一點 可是還是有畫面更新很慢的問題 有人有跟我一樣的狀況嗎 - ...

Ubuntu live CD

Joseph avatar
By Joseph
at 2012-03-06T22:34
大家好, 請問開機使用 Ubuntu live CD 後,我可以使用它來抓封包嗎? 是不是我需要準備外接式的儲存隨身碟或硬碟呢? 小弟 第一次使用 Ubuntu live CD,需要專業人士分享 謝謝 - ...

apache2 access.log 出現不明網址

Quanna avatar
By Quanna
at 2012-03-06T21:22
apache2 access.log內容為 114.80.67.207 - - [02/Mar/2012:11:36:03 +0800] and#34;GET http://www.ctrip.com/ HTTP/1.1and#34; 200 23034 and#34;-and#34; and#34;Moz ...