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