如何可以方便地閱讀大量 Linux Shell 腳本?
這個問題在幾十年前全球盜版unix的時候就已經被解決了——列印出來
話比較多...
其實我覺得SHELL沒啥好看(因為SHELL主要針對實現,寫多自然就懂了),嘛,不過開始學習LINUX也是可以看的,但請看LINUX自帶SHELL(相對比較規範),與其說這麼閱讀不如請說看懂,然後動手做, 初學者還是請看《UNIX編程環境》,高手的話請無視我,謝謝。
首先不知道你所謂的SHELL是sh, bash , ksh, csh中的哪一種
方法如下如 @vczh 所言, 列印可以用命令列印也可以組合命令列印, 當然列舉除了下面的命令還有其它....當然不同的UNIX也是細微的差別的。文件量少的。find 的用法請用man或者info, 如果不了解的話請查看。
已知後綴的:1, find /路徑 -type f -name "*.{sh,ksh,csh,...etc}" -exec cat {} ; &> output.txt (查找某路徑下關於文件為sh,ksh,csh,...etc後綴的且列印到output.txt文件)謝謝 @耿春 提醒,上面的只是列印沒有列印文件名,沒想起該用什麼參數, 本來想說提供方法就好了,具體自己查參數,好吧,我應該查清楚才寫出來,對不住了⊙▽⊙如果有需要列印出文件名可以用find /路徑 -type f -name "*.{sh,ksh,csh,...etc}" -print -exec cat {} ; &>
output.txt (查找某路徑下關於文件為sh,ksh,csh,...etc後綴的且列印到output.txt文件)
2, find /路徑 -type f -name "*.{sh,ksh,csh,...etc}" &> output.txt; vi output.txt # 想看哪個點哪個vim會自動跳轉(用鍵盤)。
不知後綴的(查找某路徑下關於文件檢查類型並列印內容到output.txt文件)
2, find 路徑 -type f | while read line; do TYPE=$(echo `file $line` | grep -i script | wc -l); if [ ${TYPE} -gt 0 ] ;then echo $line; cat $line; fi ; done; &> output.txt上面的命令沒實驗,因為手邊沒有LINUX,有錯的話請評論說。
文件量非常多
用SHELL寫個小腳本可以(速度略慢),想快的話請乖乖的用PERL, PYTHON寫個小腳本, 也是很簡單的,例子有需要的話請評論問。如果不使用命令的話
在linux上面可以直接使用vim, emacs各種搜,如上面@王銘燁 Arthur2e5 所言在window上面將文件列表下載下來用gvim, emacs, utraedit, notepad++, etc. 慢慢看。
方法太多了,一時間其它的想不起來, ごめんね...mark,等讀完 http://makepkg.sh.in 再回來答。
目前的水平是 grep -r 和 Vim 開 /? 飛,讀 @Icenowy Zheng 什麼一般的代碼……Icenowy 寫出來的這種代碼的基本要點是屏幕分割和各種搜外加實時腦內 Beautify。今天看了一個1400行的c函數……覺得腳本也沒那麼難看
多寫多練,無他,唯手熟爾。
一般寫shell的都不寫日誌十行左右的代碼,怎麼大量閱讀
各種加echo
寫整齊點 縮進我用四個空格對的整整齊齊 變數名要盡量一樣長 不然補空格對其 這就是我
ftp導入本地通過notepad sublim txt打開來看。要不然就less more cat 在kvm or xSHELL上看。
想讀懂shell,只有一行行自己寫一遍搞明白各種輸出Shell更本就不具有可讀性,除非寫C++的人寫的Shell.以上胡說,shell高手別噴我。
用 less
--------------------------------------------------------------平常自己寫的shell腳本,寫長了,隔上一兩天,我自個都看不懂了!你需要使用 vim
推薦閱讀:
※Linux中常用的命令都是哪些單詞的縮寫?
※Windows下如何遠程連接 Linux?
※怎樣安裝 Windows 7 與 Linux 共存的雙系統(在 Linux 系統下)?
※為何 Linux 在現代還堅持使用依賴這種動態庫的方式來做程序?
※什麼是 Linux?