Unix字符串長度進(jìn)行驗(yàn)證
說實(shí)話其Unix字符串的處理功能實(shí)在不強(qiáng)。如沒有現(xiàn)成的length(獲取字符串的長度)等函數(shù)。要實(shí)現(xiàn)對Unix字符串的操作,往往需要采用 expr命令結(jié)合相關(guān)的通配符來實(shí)現(xiàn)一些特定的功能。
雖然在Unix操作系統(tǒng)中,對于字符串的操作比較麻煩。但是系統(tǒng)工程師只要知道各種處理方式特點(diǎn)與缺點(diǎn),那么對癥下藥,仍然可以找到一些簡單的方式來處理系統(tǒng)中的Unix字符串問題。
對用戶輸入的Unix字符串長度進(jìn)行驗(yàn)證
系統(tǒng)工程師有時(shí)候往往需要對用戶輸入的字符串長度進(jìn)行驗(yàn)證。如在設(shè)計(jì)一個(gè)登陸程序時(shí),為了安全起見,可能需要限制用戶密碼輸入的最小位數(shù),如必須是六位以上的密碼等等。
此時(shí),其實(shí)就是統(tǒng)計(jì)用戶輸入的字符串長度問題。如果用戶輸入的密碼長度不夠,就提醒用戶;如果夠的話,就直接保存用戶輸入的信息。所以,簡單的說這可以利用if語句或者while循環(huán)判斷語句來實(shí)現(xiàn)。而這個(gè)條件則可以利用expr關(guān)鍵字來實(shí)現(xiàn)。
如果用判斷用戶輸入的Unix字符串長度,可以利用如下的格式來寫。Expr “$userpasswd” : ’.*’ 即可。在編寫這個(gè)命令時(shí),需要注意一些基本的規(guī)則。如這個(gè)expr命令往往需要使用兩個(gè)表達(dá)式,而且中間需要使用英文狀態(tài)小的冒號進(jìn)行分割。
而且這個(gè)兩個(gè)表達(dá)式的順序也有嚴(yán)格的限制。冒號左邊是需要處理的字符串(需要統(tǒng)計(jì)長度的字符串或者變量),而冒號右邊則是普通的正則表達(dá)式。
其次,需要處理的字符串需要使用雙引號括起來。這里跟普通命令中Unix字符串的處理方式有所不同。在普通的命令中,變量不需要使用雙引號因起來。如果引起起來的話,則系統(tǒng)反而會將其當(dāng)作常量來處理。
但是如果在if條件語句中將利用這個(gè)命令來統(tǒng)計(jì)Unix字符串長度時(shí),則需要將變量使用雙引號引起來。這個(gè)字符串處理上的差異需要注意,不少系統(tǒng)工程師在這里吃過虧。
第三,有時(shí)候正則表達(dá)式也需要利用單引號來引起來。如上面的’.*’則表示所有匹配的字符。如果不使用單引號的話,系統(tǒng)可能會提示語法錯(cuò)誤。
這樣,我們對Unix字符串的長度知識就應(yīng)該了解很多了。關(guān)于Unix字符串長度我們就講解到這里了。
【編輯推薦】