測試單反斜槓 和 在shell中的區別

2021-06-19 18:54:12 字數 869 閱讀 9938

測試單反斜槓``和$()在shell中的區別:

a="te st"或者a='te st'

b=`echo "$a" | sed 's/ /\\ /g'`

echo $b

結果:te st

c=$(echo "$a" | sed 's/ /\\ /g')

echo $c

結果:te\ st

d=`echo "$a" | sed 's/ /\\\\ /g'`

echo $d

結果:te\ st

eval echo $d

結果:te st

所以終上所述:

單反引號的執行結果就相當於在第一次執行結果的基礎之上又執行了一次eval,

而$()只是相當於單反引號的第一次結果。

### from da niu ###

- prefer =$()= instead of =``= since

- the former is easier to be spotted.

- the former dose not incur an extra level of escaping. therefore, is more

straightforward.

#+begin_example

$ a=$(echo 'a b' | sed 's/ /\\t/'); echo "$a"

a\tb

$ a=`echo 'a b' | sed 's/ /\\t/'`; echo "$a"

a       b

$ a=`echo 'a b' | sed 's/ /\\\\t/'`; echo "$a"

a\tb

#+end_example

在shell中呼叫sed中替換斜槓的問題

工作中,經常試用shell呼叫sed命令做匹配替換工作。我們知道替換用s 這樣的格式,如果pattern中包含斜槓,就需要轉義。如果不想轉義,就可以使用s s 之類的來替換。但是,如果我們在替換之前想匹配一下,發現只能用 來匹配,怎麼辦?比如 sed n pattern s a b p filena...

正反斜槓的區別 路徑中 斜槓 和反斜槓 的區別

最近在專案中遇到了乙個小問題,糾結了半天。路徑中使用斜槓 和反斜槓的區別到底是什麼。查閱了一些資料後可知。unix使用斜桿 作為路徑分隔符,而web應用最新使用在unix系統上面,所以目前所有的網路位址都採用 斜桿 作為分隔符。windows由於使用 斜桿 作為dos命令提示符的引數標誌了,為了不混...

Shell中的引號,反引號,雙引號,反斜槓

轉貼自 http hi.baidu.com kfeng21 blog item 3b3fcc3fc1bc85f2838b131e.html shell可以識別4種不同型別的引字符號 單引號字元 雙引號字元 反斜槓字元 反引號字元 1.單引號 howard 0 script grep susan ph...