Unix
什麼時候在 grep 中使用單引號、雙引號或不使用引號?
在嘗試在文件中搜尋簡單模式“hello”時,以下所有形式的 grep 都有效:
- grep 你好文件1
- grep’你好’文件1
- grep“你好”文件1
是否存在上述一種形式有效但其他形式無效的特定情況。如果我用一個代替另一個有什麼不同嗎?
這實際上取決於您的外殼。引號(任何一種)主要用於處理空格。例如,以下內容:
grep hello world file1
將在名為“world”和“file1”的文件中查找單詞“hello”,而
grep "hello world" file1
將在 file1 中查找“hello world”。
僅當搜尋字元串包含您希望評估的變數或其他項目時,單引號或雙引號之間的選擇才重要。使用單引號,字元串按字面意思表示,不會發生擴展。使用雙引號,變數被擴展。例如(使用 Bourne 派生的 shell,例如 Bash 或 ZSH):
VAR="serverfault" grep '$VAR' file1 grep "$VAR" file1
第一個
grep
將查找文字字元串 " $ VAR1" in file1. The second will expand the " $ VAR”變數並在 file1 中查找字元串“serverfault”。