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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼設計問題
- JAVA程式設計題-用java解決兔子問題Java程式設計
- 常用演算法、問答、設計模式演算法設計模式
- UI設計中色彩運用應該注意哪些問題UI
- Unix哲學(Unix程式設計藝術)程式設計
- 從一個問題中瞭解數學在程式設計中的應用程式設計
- 【計題04組01號】Java面試問答題Java面試
- 答面試官問:如何設計API介面面試API
- 圖形程式設計問題記錄程式設計
- 程式設計師面試常問計算機網路問題程式設計師面試計算機網路
- 《Unix 網路程式設計》11:名字和地址轉換程式設計
- 網站URL設計應注意的問題網站
- 《Unix 網路程式設計》15:Unix 域協議程式設計協議
- 【譯】Googler如何解決程式設計問題Go程式設計
- Python程式設計常見問題與解答Python程式設計
- socket程式設計中常見的概念問題!程式設計
- Apache Hive 面試問答題ApacheHive面試
- 五個關鍵問答,解讀金融App應用安全熱點話題APP
- 技術問答集錦(12)併發程式設計-任務執行程式設計
- 提出問題,解答問題!這才是理解程式碼設計的正確方法
- WPS Office Mac登入常見問題問答Mac
- 用thinkphp開發的一個集問答、論壇、小說、圈子等大型程式設計社群,PHP程式設計
- 程式設計中對於檔案路徑應該注意的問題程式設計
- FindBugs Security JSP 無法識別 jsp 頁面<script>jstl</script>程式碼中的 xss 漏洞問題JS
- kettle流程設計問題
- 答面試官問:如何設計短url服務面試
- 使用 TiDB Vector 搭建 RAG 應用 - TiDB 文件問答小助手TiDB
- 翻譯:《實用的Python程式設計》03_01_ScriptPython程式設計
- @程式設計師,安全問題必須重視!程式設計師
- Java程式設計師面試常見問題Java程式設計師面試
- WEB應用訪問緩慢的問題定位Web
- 問答題:物件導向的思想物件
- 低程式碼、快速的應用程式開發和數字轉換的挑戰問題 -Bozho
- 提問與問答技巧
- 「火鍋問答」是啥?面向自然語言和多步推理問題,新型問答資料集HotpotQA面世
- Java程式設計師面試時應注意的三個經典問題!Java程式設計師面試
- 社群問答精選|ChatGPT for SegmentFault 十問十答ChatGPT
- Angular應用解決跨域訪問的問題Angular跨域
- 虛擬主播技術在智慧問答中的應用