02 shell字串處理之

2022-09-16 14:36:14 字數 2555 閱讀 8269

上一章節講解了為什麼要用${}引用變數,${}還有乙個重要的功能,就是文字處理,單行文字基本上可以滿足你所有需求。

[root@localhost ~]# var='

hello world!

'[root@localhost ~]# echo $var

hello world![root@localhost ~]# echo $

12

格式:$

$擷取從offset個字元開始,向後length個字元.

#擷取hello字串

var='

hello world!

'echo $

hello

#擷取wo字元

echo $

wo#擷取world!字串

echo $

#擷取最後乙個字元:

echo $

!#擷取最後兩個字元

echo $

#擷取從倒數第3個字元後的2個字元

echo $

ld

格式:$  #刪除匹配字首

$$  #刪除匹配字尾

$#去掉左邊,最短匹配模式,##最長匹配模式

%去掉右邊,匹配最短模式,%%最長匹配模式

# url="

"以//為分隔符擷取右邊字串:

以/為分隔符擷取右邊字串:

# echo $

user.html以//

為分隔符擷取左邊字串:

以/為分隔符擷取左邊字串:

# echo $

以.為分隔符擷取左邊:

# echo $

/user

以.為分隔符擷取右邊:

# echo $

html

#去掉左邊,從左邊匹配第乙個,##從右邊匹配第乙個

%去掉右邊,從右邊匹配第乙個,%%從左邊匹配第乙個。

有*號情況下才這樣

$ 如果var變數為空則返回string

$ 如果var變數不為空則返回string

$ 如果var 變數為空則重新賦值var變數值為string

$ 如果var變數為空則將string輸出到stderr

如果變數為空就返回hello world!:

# var=# echo $

hello world!如果變數不為空就返回hello world!:

# var="

hello

"# echo $

hello world!如果變數為空就重新賦值:

# var=# echo $

hello

# echo $var

hello

如果變數為空就將資訊輸出stderr:

# var=# echo $

-bash: var: value is

null

${}主要用途大概就這麼多了,另外還可以獲取陣列元素,在後面章節會講到。 

2.6 字串顏色

再介紹下字串輸出顏色,有時候關鍵地方需要醒目,顏色是最好的方式:

字型顏色

字型背景顏色

顯示方式

30:黑

31:紅

32:綠

33:黃

34:藍色

35:紫色

36:深綠

37:白色

40:黑

41:深紅

42:綠

43:×××

44:藍色

45:紫色

46:深綠

47:白色

0:終端預設設定

1:高亮顯示

4:下劃線

5:閃爍

7:反白顯示

8:隱藏

格式:\033[1;31;40m  # 1是顯示方式,可選。31是字型顏色。40m是字型背景顏色。

\033[0m     # 恢復終端預設顏色,即取消顏色設定。

#!/bin/bash

# 字型顏色

for i in ; do

echo -e "

\033[$i;40mhello world!\033[0m

"done

# 背景顏色

for i in ; do

echo -e "

\033[47;$mhello world!\033[0m

"done

# 顯示方式

shell 02 字串處理

一 字串相關操作 1.計算字串的長度 語法說明 方法一 無方法二 expr length string string有空格,則必須加雙引號 舉例 計算字串的長度 var1 hello shell len 當定義的字串有空格的時候,string必須有雙引號,否則會報錯 len expr length ...

Shell命令之字串處理

shell程式設計的過程中,經常遇到要獲取檔名以及檔案字尾名的問題 一般的處理方法如下 code file thisfile.txt echo filename echo extension result filename thisfile extension txt表示式 含義 string的長度...

shell字串處理

一 構造字串 直接構造 str zero hello str first i am a string str second success 重複多次 repeat the first parm 1 by 2 times strrepeat 舉例 str repeat strrepeat user n...