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