1. 程式人生 > >Linux Shell中引號的用法

Linux Shell中引號的用法

shell可以識別4種不同型別的引字元號: 單引號字元' 雙引號字元" 反斜槓字元\ 反引號字元`

1. 單引號 ( ' ' )
[email protected][script]$ grep Susan phonebook Susan Goldberg 403-212-4921 Susan Topple 212-234-2343 如果我們想查詢的是Susan Goldberg,不能直接使用grep Susan Goldberg phonebook命令,grep會把Goldberg和phonebook當作需要搜尋的檔案 [email protected][script]$ grep 'Susan Gold' phonebook Susan Goldberg 403-212-4921 當shell碰到第一個單引號時,它忽略掉其後直到右引號的所有特殊字元
2. 雙引號 ( " " )
雙引號作用與單引號類似,區別在於它沒有那麼嚴格。單引號告訴shell忽略所有特殊字元,而雙引號只要求忽略大多數,具體說,括在雙引號中的三種特殊字元不被忽略:$,\,` ,即雙引號會解釋字串的特別意思,而單引號直接使用字串.如果使用雙引號將字串賦給變數並反饋它,實際上與直接反饋變數並無差別。如果要查詢包含空格的字串,經常會用到雙引號。 [email protected][script]$ x=* [email protected][script]$ echo $x hello.sh menus.sh misc.sh phonebook tshift.sh [email protected]
[script]$ echo '$x' $x [email protected][script]$ echo "$x" * 這個例子可以看出無引號、單引號和雙引號之間的區別。在最後一種情況中,雙引號告訴shell在引號內照樣進行變數名替換,所以shell把$x替換為*,因為雙引號中不做檔名替換,所以就把*作為要顯示的值傳遞給echo。 對於第一種情況需要進一步說明,shell在給變數賦值時不進行檔名替換(這從第三種情況中也能看出來),各步驟發生的精確次序如下: shell掃描命令列,把x的值設為星號*; shell再次掃描命令列,碰到星號*,把它替換成當前目錄下的檔案清單; shell啟動執行echo命令,把檔案清單作為引數傳遞給echo. 這個賦值的先後次序非常重要:shell先作變數替換,然後作檔名替換,最後把這行處理為引數
3. 反引號(``)
命令替換是指shell能夠將一個命令的標準輸出插在一個命令列中任何位置。shell中有兩種方法作命令替換:把shell命令用反引號或者$(...)結構括起來,其中,$(...)格式受到POSIX標準支援,也利於巢狀。 [email protected][script]$ echo The date and time is `date` The date and time is 三 6月 15 06:10:35 CST 2005 [email protected][script]$ echo Your current working directory is $(pwd) Your current working directory is /home/howard/script.
4. 反斜槓 backslash-escaped( \ )
反斜槓一般用作轉義字元,或稱逃脫字元,linux如果echo要讓轉義字元發生作用,就要使用-e選項。
使用反斜槓是第三種使特殊字元發生轉義的方法。反斜槓的功能和單引號一樣,只是反斜槓每次只能使一個字元發生轉義,而不是使整個字串發生轉義。請看下面的例子:
greeting=hello\ there (在bash和pdksh環境下)
在命令中,反斜槓使外殼忽略空格,從而將hello there作為一個單詞賦予變數greeting。
當你想要將一個特殊的字元包含在一個字串中時,反斜槓就會特別地有用。

相關推薦

Linux Shell引號用法

shell可以識別4種不同型別的引字元號: 單引號字元' 雙引號字元" 反斜槓字元\ 反引號字元` 1. 單引號 ( ' ' )[email protected][script]$ grep Susan phonebook Susan Goldberg 403-

linux shell sed用法

轉自:http://www.360doc.com/content/16/1118/16/38309198_607576538.shtml 一, 基本概述 (1)基本介紹 sed是一款流編輯工具,用來對文字進行過濾與替換工作,  sed通過輸入讀取檔案內容,但一次僅

Linux Shell有三種引號用法

containe ubunt ref highlight 處理 alt 返回 cin test Linux Shell中有三種引號,分別為雙引號(" ")、單引號(‘ ‘)以及反引號(` `)。 其中雙引號對字符串中出現的$、‘‘、`和\進行替換;單引號不進行替換,將字符串

linux shell 的 2>&1 用法說明

pass 重定向 分解 說明 分別是 理解 重新 這樣的 通用 linux中有三種標準輸入輸出,分別是 STDIN,STDOUT,STDERR,對應的數字是 0,1,2。 STDIN 是標準輸入,默認從鍵盤讀取信息; STDOUT 是標準輸出,默認將輸出結果輸出至終端,也

shellLinux shell括號的用法

linux shell 中括號 運維 編程 Linux shell中括號的用法 概述 本文主要介紹Linux中括號的用法,主要包含判斷文件和變量。 **註意事項**:中括號兩邊必須有空格。 使用中括號會涉及到的知識 &&、|| 在本文對文件或

linux shell\w \s \d \b ^ $等常用匹配用法

正則表示式 \w \s \d \b 用法: . 匹配除換行符以外的任意字元  \w 匹配字母或數字或下劃線  \s 匹配任意的空白符  \d 匹配數字         

Linux Shell 的反引號,單引號,…

    反引號位 (`) 位於鍵盤的Tab鍵的上方、1鍵的左方。注意與單引號(')位於Enter鍵的左方的區別。   在Linux中起著命令替換的作用。命令替換是指shell能夠將一個命令的標準輸出插在一個命令列中任何位置。   如下:    shell會執行反引號中的date命令,把結果插入到echo

Linux shell 引數變數&shell的雙引號

 引數變數:一些指令碼程式帶有引數,shell中用一些特殊的變量表示這些引數,這些特殊的變數就是引數變數。 Shell中引數變數 $1, $2,$3, ... 指令碼程式的引數 $* 在一個變數中列出所有

Linux shell&,&&,|,||的用法

註入 輸入 一是 ons bili 註意 second 博文 arc 前言 在玩dvwa的命令註入漏洞的時候,遇到了沒有預料到的錯誤,執行 ping 127.0.0.1 & echo "<?php phpinfo(); ?>" >

Linux shell引號,雙引號及不加引號的簡單區別

簡要總結: 單引號:   可以說是所見即所得:即將單引號內的內容原樣輸出,或者描述為單引號裡面看見的是什麼就會輸出什麼。 雙引號:   把雙引號內的內容輸出出來;如果內容中有命令,變數等,會先把變數,命令解析出結果,然後在輸出最終內容來。   雙引號內命令或變數

Pytohn實現Linux shell的wc命令

python wc #!/usr/bin/python import sys import os from optparse import OptionParser def opt(): parser = OptionParser() parser.add_option("-c

1.Linux Shell的變量

proc shell parameter 顯式 nbsp 位置 login shell中的 自己 1. Shell變量類型 Shell是一種動態類型語言(不使用顯式的數據聲明)和弱類型語言(變量的類型操作根據需求而不同)。Shell中的變量是不分類型的(都是字符串類型),但

常見Linux Shell的特殊符號含義

運算 variable help erb null 作用 pip == 不可 在Shell的實際使用中,有編程經驗的很容易上手,但稍微有難度的是shell裏面的那些個符號,各種特殊的符號在我們編寫Shell腳本的時候如果能夠用的好,往往能給我們起到事半功倍的效果,下面就羅列

linux shell 的特殊符號

萬用字元,代表零個或多個任意字元? 只代表一個任意的字元 註釋符號,即#後面的內容都會被忽略 \ 脫義字元,會將後面的特殊符號還原為普通字元| 管道符,將前面的命令的輸出作為後面命令的輸入wc -l 計算一個文件有多少行命令cut格式: cut -d '分隔字元‘ [ -cf ] n-d 後面跟分隔字元

Linux shell自動完成登錄

分享 ont 指定 png 服務 ict 密碼 操作 uri 在寫shell腳本時,需要登錄到不同的服務器上執行相關命令,在未建立信任之前如何批量操作。 1、ssh 首次登錄服務器時會提示RSA key fingerprint輸入yes/no,可以通過

linux Shell grep+wc取值在shell的結果與手動執行結果不一致的坑

vim restart.sh #!/bin/bash VDS=ps -ef |grep -w vds|grep -v grep|wc -l if [ $VDS -eq 0 ];thencd /usr/local/program;./linux-start.sh restartelseecho "It's

linux shell /dev/null 2>&1 含義

shell中可能經常能看到:echo log > /dev/null 2>&1 命令的結果可以通過%>的形式來定義輸出/dev/null :代表空裝置檔案>  :代表重定向到哪裡,例如:echo "123" > /home/123.

linux shell引號、單引號、反引號

#”雙引號字串 echo let us to do * echo "let us to do *" grep as hu one echo  "\n" echo \n grep "as hu" one #'單引號強制引用 BOY="boy" a='$BO

linux shell./a.sh , sh a.sh , source ./a.sh, . ./a.sh的區別

      在linux shell中, 執行shell script的方式有多種, 有什麼區別呢?  實際上我之前說過, 現在用一個簡單例子再來說下。       a.sh的內容是: #! /bin/bash echo hello world echo "PID of

[work] Linux Shell的陣列及遍歷

在Linux下使用shell的時候,為方便起見,偶爾會用到一下陣列。陣列的申明方式是: [java] view plain copy array=(element1 element2 element3 .... elementN)   也就是直接用圓括號包陣列元素包起來,陣