shell 指令碼中求乙個字串的長度

2021-08-05 19:27:06 字數 1426 閱讀 4607

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...