使用linux shell命令時小心轉義符號

2021-09-01 17:42:45 字數 925 閱讀 6093

shell命令1

grep " " /tmp/1
這個命令比較簡單,就是把/tmp/1檔案中包含空格的行列出來。

如果我們想先ssh到某台機器上再執行這個shell命令1,

你也許會嘗試:

ssh 127.0.0.1 grep " " /tmp/1
但是很快你會發現行不通。

因為ssh拿到的「 」之後,兩個引號就消失了,

然後傳遞給grep執行的時候,直接就是乙個空格,也就相當於沒有引數了。

正確的寫法應該是將兩個需要傳給grep的引號用附上轉義符,如下

shell命令2

ssh 127.0.0.1 grep "\" \"" /tmp/1
我們知道grep拿到的引數是「 」,已經沒有轉義符了,它就是乙個空格,

我們再來一層,如果ssh到一台機器然後在ssh到另一台機器,執行shell命令1,那將會是怎麼樣?

其實也不難,每傳遞一次引數就會減少一層轉義符,

所以我們要把給第二個ssh的引數中的特殊符號全部轉移一遍!

shell命令3

ssh 127.0.0.1 ssh 127.0.0.1 grep "\"\\\" \\\"\"" /tmp/1
通過grep監控或檢視遠端伺服器時,可能就會遇到這個問題。

當然如果不用grep到特殊字元,也不用使用引號將有空格的pattern引起來,可以不用理會這點。

如果先將引數傳給自己寫的指令碼,然後在執行上面的shell命令,那也同樣需要多一層轉義。

匹配任意字元.*

' ', '-','\', '+'等字元

在正規表示式中都要轉義

Linux Shell命令 tr命令

在linux常用的命令中,我們可以通過使用tr,非常容易地實現 sed 的許多最基本功能。1 定義 日常操作中,tr用來從標準輸入中通過替換或刪除操作進行字元轉換。2 使用格式 tr c d s string1 to translate from string2 to translate to in...

linux shell基礎命令

建立檔案 touch file1 複製檔案file1成file2 cp file1 file2 複製整個目錄的內容 cp r file1 file2 建立檔案硬連線 cp l file1 file2 建立檔案軟連線 cp s file1 file2 重新命名檔案 mv file1 file2 建立目...

Linux Shell 命令 簡介

安裝openssh 服務端 sudo apt get install openssh server openssh client windows 下客戶端 putty 常用命令 一 ls 檢視目錄命令 一般放在home 目錄下 ls l 根目錄下的列表 ls a 根目錄下所有的檔案 ls la 組合...