Unix程式設計/應用問答中文版 ---20.shell script問題(轉)
Unix程式設計/應用問答中文版 ---20.shell script問題(轉)[@more@]作者:不祥 [文章出自: ]20. shell script問題 20.1 如何獲取一個字串的長度 20.2 讀超時自動使用預設值 20.3 20.4 BASH中如何得到一個字串的子串 20.5 20.6 20.7 20.8 使用tr命令加密檔案 20.9 有哪些命令用於查詢定位 20.10 20.11 如何將大寫檔名轉換為小寫檔名 -------------------------------------------------------------------------- 20. shell script問題 20.1 如何獲取一個字串的長度 A: Andrei Ivanov expr `echo $string | wc -c` - 1 echo $string | awk '{ print length( $0 ); }' /usr/ucb/expr length "$string" expr "$string" : ".*" echo "$string" | sed 's/./1+/g;s/+/ /;s/$/p/' | dc A: 假設是bash $ string='1234567890' $ echo ${#string} 10 $ 20.2 讀超時自動使用預設值 Q: shell script程式設計,不介入expect、perl、tcl等類似工具。讀等待60秒,超時則 自動使用預設值。可以使用系統預設外部命令,要求能廣泛移植在常用Unix平臺 上 A: CERNET 華中地區網路中心 PUE(UNIX環境程式設計)版 lookout 參看comp.unix.shell新聞組,下面以SPARC/Solaris 2.6為例 -------------------------------------------------------------------------- #! /sbin/sh stty -icanon min 0 time 255 while true do /usr/bin/echo "Press a key or press ENTER to exit:c" read key if [ "$key" = "" ] ; then echo "
You press Enter or timeout" break else echo "You press the key $key" fi done stty sane -------------------------------------------------------------------------- 20.4 BASH中如何得到一個字串的子串 A: loginlog@SMTH BASH 2.0.3 以上版本 ${var:offset:length} 20.8 使用tr命令加密檔案 A: 水木清華 TheCool 著名的 rot13 密碼, 透過把字母移動13個位置實現對文字的加密 tr "[a-m][n-z][A-M][N-Z]" "[n-z][a-m][N-Z][A-M]" < message > newmessage 然後可以用同樣的命令進行解密 tr "[a-m][n-z][A-M][N-Z]" "[n-z][a-m][N-Z][A-M]" < newmessage > message 20.9 有哪些命令用於查詢定位 A: 小四 type -a telnet whereis telnet which telnet whatis telnet <=> man -k telnet 20.11 如何將大寫檔名轉換為小寫檔名 A: 小四 如果要處理整個目錄樹的話,可以這樣 find -exec sh -c 'mv -f "$0" `echo "$0" | tr "[A-Z]" "[a-z]"` > /de v/null 2>&1' {} ; 同理,將小寫檔名轉換為大寫檔名如下 find -exec sh -c 'mv -f "$0" `echo "$0" | tr "[a-z]" "[A-Z]"` > /de v/null 2>&1' {} ; 這個辦法有待修正,處理多層目錄名本身帶有大寫字母的情況,有問題。比如存在如 下目錄的時候,./A/B/C/D.txt。 A: Potash@ 2002-02-05 18:58 -------------------------------------------------------------------------- #! /bin/sh # Usage: ./loworup.sh # # 第二形參必須是目錄,第一形參指定-l或-u # if [ $# -ne 2 ] ; then echo "Usage: ${0} " exit 1 fi if [ ! -d ${2} -o "${1}" != "-l" -a "${1}" != "-u" ] ; then echo "Usage: ${0} " exit 1 fi exec 1>/dev/null 2>&1 dir=`dirname "${2}"` cd ${dir} if [ "${1}" = "-l" ] ; then base=`basename "${2}" | tr "[A-Z]" "[a-z]"` else base=`basename "${2}" | tr "[a-z]" "[A-Z]"` fi mv -f "`basename ${2}`" "${base}" for entry in `find ${base}` do before="." # # 這個辦法依賴for in語法,用空格做分隔符,所以不能處理那些本身名字帶空 # 格的目錄項,屬於小BUG # for after in `echo "${entry}" | sed -e 's,/, ,g'` do tmp_entry="${before}/${after}" if [ "${1}" = "-l" ] ; then before=`echo "${tmp_entry}" | tr "[A-Z]" "[a-z]"` else before=`echo "${tmp_entry}" | tr "[a-z]" "[A-Z]"` fi mv -f "${tmp_entry}" "${before}" done done --------------------------------------------------------------------------
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-940446/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Unix程式設計/應用問答中文版 ---19.終端相關問題(轉)程式設計
- Unix程式設計/應用問答中文版 ---21.FreeBSD相關問題(轉)程式設計
- Unix程式設計/應用問答中文版 ---1.系統管理配置問題(轉)程式設計
- Unix程式設計/應用問答中文版 ---4.系統資源相關問題(轉)程式設計
- Unix程式設計/應用問答中文版 ---12.日誌相關問題 13.程式相關問題(轉)程式設計
- Unix程式設計/應用問答中文版 ---17.檔案檢視問題 18.補丁相關問題(轉)程式設計
- Unix程式設計/應用問答中文版 ---6./etc/system可調資源限制(轉)程式設計
- Unix程式設計/應用問答中文版 ---14.一些小工具的使用 15.32-bit/64-bit相關問題(轉)程式設計
- Unix(Linux) C程式設計問題精粹 (轉)LinuxC程式程式設計
- Unix(Linux) C程式設計問題精粹(轉)LinuxC程式程式設計
- Unix(Linux)C程式設計問題精粹(轉)LinuxC程式程式設計
- Linux應用問答(轉)Linux
- Linux桌面應用問答(轉)Linux
- Linux網路應用問答(轉)Linux
- Linux問與答:KDE問題解凝(轉)Linux
- Linux 作業系統程式設計之Shell 問答錄(轉)Linux作業系統程式設計
- 防火牆常見問題十問十答(轉)防火牆
- Linux_FAQ:程式設計問題(轉)Linux程式設計
- 再談應用程式的例項問題 (轉)
- 50個LINUX問答題(轉)Linux
- 程式碼設計問題
- JAVA程式設計題-用java解決兔子問題Java程式設計
- 《實用Common Lisp程式設計》作者Peter Seibel答讀者問Lisp程式設計
- 程式設計師應該捫心自問的10個問題程式設計師
- 程式設計師面試:電話面試問答Top 50程式設計師面試
- 嵌入式程式設計師應知道的幾個基本問題(轉)程式設計師
- 程式設計師,你會問問題嗎?程式設計師
- 程式設計文化的問題程式設計
- QTP問與答(轉)QT
- C#問答 (轉)C#
- 程式設計師寫程式碼時應該反覆問自己的10個問題程式設計師
- 開發Web應用程式中Cookie使用的問題 (轉)WebCookie
- NETMicroFramework常見問題問答Framework
- 【計題04組01號】Java面試問答題Java面試
- 常用演算法、問答、設計模式演算法設計模式
- 答面試官問:如何設計API介面面試API
- UI設計中色彩運用應該注意哪些問題UI
- C 語言程式設計(unix) (轉)程式設計