沈陽電腦維修網,沈陽上門維修電腦服務
當前位置: 主頁 > 程序數據代碼>shell腳本中的通配_程序數據_shell >

shell腳本中的通配_程序數據_shell

時間:2011-12-5來源:沈陽電腦維修網 作者: 呂先生:13889116605點擊:
沈陽電腦維修,上門維修電腦
Bash本身沒有正則表達式的功能.在腳本里,使用正則表達式的是命令和軟件包--例如sed和awk--它們可以解釋正則表達式.Bash所做的是展開文件名擴展--這就是所謂的通配(globbing)--但它不是使用標準的正則表達式.而是使用通配符.通配解釋標準的通配符:*和?,方括號括起來的字符,還有其他的一些特殊的字符(比如說^用來表示取反匹配).然而通配機制的通配符有很大的局限性.包含有*號的字符串將不會匹配以點開頭的文件,例如.bashrc. 另外,通配機制的?字符和正則表達式中表示的意思不一樣. bash$ls-l total2 -rw-rw-r--   1bozo bozo        0Aug 618:42a.1 -rw-rw-r--   1bozo bozo        0Aug 618:42b.1 -rw-rw-r--   1bozo bozo        0Aug 618:42c.1 -rw-rw-r--   1bozo bozo      466Aug 617:48t2.sh -rw-rw-r--   1bozo bozo      758Jul3009:02test1.txt  bash$ls-lt?.sh -rw-rw-r--   1bozo bozo      466Aug 617:48t2.sh  bash$ls-l[ab]* -rw-rw-r--   1bozo bozo        0Aug 618:42a.1 -rw-rw-r--   1bozo bozo        0Aug 618:42b.1  bash$ls-l[a-c]* -rw-rw-r--   1bozo bozo        0Aug 618:42a.1 -rw-rw-r--   1bozo bozo        0Aug 618:42b.1 -rw-rw-r--   1bozo bozo        0Aug 618:42c.1  bash$ls-l[^ab]* -rw-rw-r--   1bozo bozo        0Aug 618:42c.1 -rw-rw-r--   1bozo bozo      466Aug 617:48t2.sh -rw-rw-r--   1bozo bozo      758Jul3009:02test1.txt  bash$ls-l{b*,c*,*est*} -rw-rw-r--   1bozo bozo        0Aug 618:42b.1 -rw-rw-r--   1bozo bozo        0Aug 618:42c.1 -rw-rw-r--   1bozo bozo      758Jul3009:02test1.txt        Bash會對命令行中沒有引號引起來的字符嘗試文件名擴展.echo命令可以印證這一點. bash$echo* a.1b.1c.1t2.shtest1.txt  bash$echot* t2.shtest1.txt         可以改變Bash對通配字符進行解釋的行為.set-f命令可以禁止通配機制,并且shopt的選項nocaseglob和nullglob能改變通配的行為.
上一篇:受限shell(Restricted Shells)_程序數據_shell
下一篇:shell中的移植話題_程序數據_shell
查看[shell腳本中的通配_程序數據_shell ]所有評論
發表評論
請自覺遵守互聯網相關的政策法規,嚴禁發布色情、暴力、反動的言論。
用戶名: 驗證碼:
推薦內容
關于我們 服務價格 聯系我們 企業網站優化 沈陽網站建設 沈陽維修電腦
福建31选7开奖号码走势图