模仿DIR環境指令碼

來源:互聯網
上載者:User

模仿DIR環境指令碼  很多電腦愛好者是從Unix或是Linux作業系統學起的,然而還有很多人是從別的系統學起的,使用不同的命令、不同類型的互動方式。比如說,很有可能你公司的員工更習慣於使用DOS命令,而不是一個shell的解提示器。使用一系列的alias可以稍微減少一點這種差異,比如說將dos命令映射城unix的ls命令: alias DIR=ls   但如果使用者學習過在dos下/w表示寬列表格式的話,這種映射就沒什麼效果了。因為unix命令會警告沒有/w目錄。取而代之,像之前寫的那些改變輸入的封裝器一樣,接下來的DIR指令碼就是用來映射一種類型命令選項到另一種環境中去。 代碼: 01#!/bin/sh02  03 # DIR.sh -- 假裝我們正使用DOS的dir命令04 # 使用dir命令顯示給定檔案的內容,該命令可接受標準的dir選項05  06 function usage07 {08     cat << EOF >&209 Usage: $(basename $0) [DOS flags] directory or directories10 where:11 /D        sort by columns12 /H        show help for this shell script13 /N        show long listing format with filenames on right14 /OD        sort by oldest to newest15 /O-D    sort by newest to oldest16 /P        pause after each screenful of information17 /Q        show owner of the file18 /S        recursive listing19 /W        use wide listing format20 EOF21     exit 122 }23  24 postcmd=""25 flags=""26  27 while [ $# -gt 0 ]28 do29     case $1 in30         /D)        flags="$flags -x";;31         /H)        usage;;32         /[NQW])    flags="$flags -l";;  # Regex33         /OD)    flags="$flags -rt";;34         /O-D)    flags="$flags -t";;35         /P)        postcmd="more";;36         /S)        flags="$flags -s";;37         *)        break; # 未知選項:可能是一個檔案描述符;所以退出迴圈38     esac39     shift40 done41  42 if [ ! -z "$postcmd" ]; then43     ls $flags "$@" | $postcmd44 else45     ls $flags "$@"46 fi47  48 exit 0指令碼如何運行:   這個指令碼突出了一個真相:shell指令碼中的case語句事實上是Regex,這個特性非常有用。你可以看到在dos中的/N、/Q、/W選項都被映射到了unix中ls命令的-l選項上。   理論上使用者應當被授予unix環境中的文法和選項,但那並不一定是必須的。當然,在調用這個指令碼前可以查看指令碼中的協助選項來瞭解所有的映射選項。    運行指令碼:   將指令碼命名為DIR.sh,當使用者在命令列上鍵入典型的DOS命令選項時,就會產生一個有意義的輸出,而不是以前的那種錯誤資訊:command not found 運行結果:  01$ DIR /OD /S /Volumes/110GB/02 total 6068003    0 WEBSITES                        64 Desktop DB04    0 Writing                          0 Temporary Items05    0 Microsoft Office X           29648 Norton FS Volume 206    0 Documents                    29648 Norton FS Volume07    0 TheVolumeSettingsFolder          0 iTunes Library08    0 Trash                            8 Norton FS Index09 816 Norton FS Data                   0 Desktop Folder10 496 Desktop DF                       0 Desktop Picture Archive這個目錄下的排序方式是從最舊的到最新的,同時顯示了檔案大小。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.