shell 中沒有可以直接求 某個字串變數的長度,有時候 想判斷 這個字串的長度,該如何是好呢, 我們都知道 -n -z 分別是 字串不為空, 和字串 為空。
有時候想知道,字串的長度 ,卻沒有乙個好的辦法。
有乙個辦法,可以用 awk 在awk 中有乙個函式, length() 就可以 獲取字串的長度
awk 'begin
這裡就可以獲取字串的長度。
但是如果要寫在shell 指令碼中 需要把 shell 變數傳入到 awk 中, 可以用 -v 選項。
#!/bin/bash
curdir=$(cd "$(dirname "$")"; pwd); #當前絕對路徑
mystring='aaabbb'
#把mystring ,傳入到awk 中, 用 -v string=$mystring
len=`awk -v string=$mystring 'begin `
echo "len:$len"
這樣就可以了,mystring 的長度 求出來了。
如果 mystring=『aaa bbb ccc』 ,也就是 mystring 有空格 這個時候執行 上面指令碼 就會報錯。
錯誤如下:
[root@bdc130 shell]# sh 4.sh
錯誤如下:
awk: 命令列:1: 致命錯誤: 無法以讀模式開啟檔案「ccc」(沒有那個檔案或目錄)
len:
這個可能是awk -v 選項 傳值的時候,以空格把它們分開了。因此,在 mystring 加上引號,就可以了.
#!/bin/bash
curdir=$(cd "$(dirname "$")"; pwd); #當前絕對路徑
#mystring='mylinuxcentos'
mystring='aaa bbb ccc'
#echo "mystring:$mystring"
len=`awk -v string="$mystring" 'begin `
echo "len:$len"
這樣就可以,非常簡單吧。
2023年 10月 10日 星期二 20:02:15補充:
其實shell 指令碼中是可以 直接取到字串的長度的。
$ 這樣就可以取到字串的長度了。
#!/bin/bash
mystring="changyubiao"
#mystring="chang"
length=$
echo $length
這樣就可以 取到 字串的長度。
分享快樂,留住感動。 喜歡就給我點讚吧。
在乙個字串中尋找另外乙個字串
在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...
判斷乙個字串是否在另乙個字串中
方法一 string str1 nihaoksdoksad string str2 ok int total 0 for string tmp str1 tmp null tmp.length str2.length tmp tmp.substring 1 system.out.println st...
js如何獲取乙個字串在另外乙個字串中的下標
有字串 a 34 b 123456789 要求定義乙個函式返回b字串中第乙個匹配a字串的下標,不得使用現有的方法 indexof 兩種解決辦法 substr 方法可在字串中抽取從 start 下標開始的指定數目的字元。const b,a return 1 let a 34 let b 1234567...