SHELL相关的特殊字符总结
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
@掬一捧 編輯于2013/05/14
##通配符 通配符用于模式匹配,如文件名匹配、路徑名搜索、字符串查找等。
*星號:匹配任意字符的零次或多次。
?問號:匹配任意一個字符。
[字符組]:匹配該字符組所限定的任意一個字符。
!感嘆號:一般緊跟在一對方括號的左括號之后,表示不在一對方括號中所列的字符。
模式表達式:包含一個或者多個通配符的字。
*(模式表):匹配給定模式表中零次或多次出現(xiàn)的“模式”,各模式之間以"|"隔開。
+(模式表):匹配給定模式表中一次或多次出現(xiàn)的“模式”,各模式之間以"|"隔開。
?(模式表):匹配模式表中任何一種零次或者一次出現(xiàn)的“模式”,各模式之間以"|"隔開。
@(模式表):僅僅匹配模式表中給定的一次出現(xiàn)的“模式”,各模式之間以"|"隔開。
!(模式表):除給定模式表中的一個“模式”之外,可以匹配任何其它的內(nèi)容。
模式表達式的定義是遞歸的,每個表達式中都可以包含一個或者多個模式。
##引號 在SHELL中引號分為三種:單引號、雙引號和倒引號。
雙引號:除"$"、"`"及""之外的字符均作為普通字符對待。"$"變量值替換;"`"命令替換;""轉(zhuǎn)義字符。
單引號:所有的字符均視作普通字符。
倒引號:字符串被解釋為命令行內(nèi)容,且有比較高的執(zhí)行優(yōu)先級。
##輸入輸出重定向符 輸入輸出標準文件:stdin\stdout\stderr。
輸入重定向符"<":將命令(或可執(zhí)行程序)的標準輸入重定向到指定文件。
輸出重定向符">":把命令(或可執(zhí)行程序)的標準輸出重定向到指定文件。如果文件已經(jīng)存在會覆蓋里面的內(nèi)容。
注意:每個命令其實也就是一個可執(zhí)行程序。
輸出附加定向符">>":和輸出重定向符類似,只是不會覆蓋已經(jīng)存在的文件內(nèi)容,而只是在文件的尾部附加。
與文件描述字有關(guān)的重定向:stdin(0)\stdout(1)\stderr(2)。
##注釋、管道線和后臺
注釋:以"#"開頭。#!/bin/bash。
管道線:"|"前一個命令的輸出是下個命令的輸入。
后臺命令:在命令的最后輸入"&"字符,該命令的執(zhí)行進程將在后臺執(zhí)行。
##命令執(zhí)行操作符
順序執(zhí)行:以分號";"隔開,順序執(zhí)行。
邏輯與(&&):同樣是順序執(zhí)行,一旦遇到一個命令執(zhí)行失敗,后面的命令將不再執(zhí)行。 邏輯或(||):依舊是順序執(zhí)行,只要遇到一個命令執(zhí)行成功,其它的命令即被忽視掉。
##成組命令 將若干條命令組合在一起,使其在邏輯上被視為一條命令。
{}形式:根據(jù)命令的出現(xiàn)次序執(zhí)行。注意的一點是:左括號"{"的后面應(yīng)該有個空格,右括號"}"前面必須有個分號;同時,括號內(nèi)必須滿足命令的合法規(guī)范。
()形式:和{}形式類似,只是左括號"("后不必有空格,右括號")"前也無需分號。
兩種組合方式的區(qū)別:使用{}組合的命令只是在本shell內(nèi)執(zhí)行命令表,不會產(chǎn)生新的進程;而()組合形式組成的命令表是在新的子SHELL內(nèi)執(zhí)行的;因此,在()內(nèi)執(zhí)行的命令不會改變父SHELL的變量值以及工作目錄。
如切換目錄的實現(xiàn):{ cd /;} 會達到目的,而(cd /)不起任何的效果。
轉(zhuǎn)載于:https://my.oschina.net/sunshinedabby/blog/130896
總結(jié)
以上是生活随笔為你收集整理的SHELL相关的特殊字符总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASA防火墙外部web应用端口与默认审查
- 下一篇: Struts2 标签配置详细