1。如何使用echo輸出乙個字串str="-n". 由於-n是echo的乙個引數,所以一般的方法echo "$str"是無法輸出的.
解決方法可以有:
echo x$str | sed 's/^x//'
echo -ne "$str\n"
echo -e "$str\n\c"
printf"%s\n" $str(這樣也可以)
printf格式化輸出
%s格式符表示輸出的是字串,後面對應的引數用字元陣列或是字元指標
2。shell怎麼定義乙個目錄的資料結構?(find . -type d -maxdepth 1)
q:想統計乙個目錄下各個檔案的基本資訊,如檔名、檔案目錄和大小等資訊,然後統一生成乙個檔案,在shell指令碼大概應該如何處理?
a:用awk處理 ls -lh 出來的結果。
1)每行的最後乙個字段(一般是第9個字段)為檔名。
2)檔案目錄是指檔案所在的目錄,還是判斷乙個檔案是不是目錄? 如果是前者,用 pwd 命令即可獲得。(下面的**根據這種情況來) 如果是後者,根據 ls -lh 結果每行第乙個字元判斷,如果是d表示為目錄(directory)。
3)獲取檔案大小根據第5個字段。 shell指令碼大致如下:#!/bin/shls -lh "$1" | awk 'beginnr>1' >file.txtexit 0 指令碼儲存為 statistic.sh執行如下命令即可:sh statistic.sh [要統計的目錄名]
結果儲存在當前目錄下的 file.txt 中。
q:檔案目錄指的是檔案所在的目錄。如何要繼續統計子目錄下的檔案的話,應該怎樣完善它?
a:目錄下還有子目錄,子目錄下還有子目錄,這個無窮盡了。直接:ls -lhr >file.txt這個命令就能列出包括子目錄內容在內的檔案列表。或者: tree -hd >file.txt生成樹狀結構的檔案目錄,包括每個檔案(目錄)的大小及最後修改時間。
shell中printf的應用
1。如何使用echo輸出乙個字串str n 由於 n是echo的乙個引數,所以一般的方法echo str 是無法輸出的.解決方法可以有 echo x str sed s x echo ne str n echo e str n c printf s n str 這樣也可以 printf格式化輸出 s...
Shell程式設計中的printf
上一章節我們學習了 shell 的 echo 命令,本章節我們來學習 shell 的另乙個輸出命令 printf。printf 命令模仿 c 程式庫 library 裡的 printf 程式。printf 由 posix 標準所定義,因此使用 printf 的指令碼比使用 echo 移植性好。pri...
shell中for的應用
root localhost hh.sh bin bash read p 請輸入乙個小於100的整數 aa if aa eq 1 then echo 和等於 aa sum 0 第乙個for的賦值 sum1 0 第二個for的賦值 elif aa gt 1 aa lt 100 then for i 1...