workLog(4-1)

1\  

shell 遞歸遍歷目錄 

#!/bin/bash
echo "please input the directory:"
read cdir
for dir in $(find $cdir -type d); do
    echo change to $dir
    cd $dir
    ls
    echo "----------"
done
cd $cdir


2\


${FileName##*.}   #提取最後一個"."後面的字符,即擴展名

${FileName##*/}   #提取最後一個"/"後面的字符,即路徑中的文件名

you can also use "basename" and "dirname"  filePath 


3\

shell 字符串爲空和長度的判斷  


計算字符串長度可用的4種方法: 
echo “$str”|awk '{print length($0)}' 
expr length “$str” 
echo “$str”|wc -c 
但是第三種得出的值會多1,可能是把結束符也計算在內了 
 
array 爲數組
length=${#array[@]} 
echo $length 可得數組個數

判斷字符串爲空的方法有三種: 
if [ "$str" =  "" ]  
if [ x"$str" = x ] 
if [ -z "$str" ] 
注意:都要代雙引號,否則有些命令會報錯,養成好習慣吧!


4\ shell   "read"

1. Read的一些選項

 Read可以帶有-a, -d, -e, -n, -p, -r, -t, 和 -s八個選項。

-a :將內容讀入到數值中

echo -n "Input muliple values into an array:"
read -a array
echo "get ${#array[@]} values in array"

-d :表示delimiter,即定界符,一般情況下是以IFS爲參數的間隔,但是通過-d,我們可以定義一直讀到出現執行的字符位置。例如read –d madfds value,讀到有m的字符的時候就不在繼續向後讀,例如輸入爲 hello m,有效值爲“hello”,請注意m前面的空格等會被刪除。這種方式可以輸入多個字符串,例如定義“.”作爲結符號等等。

-e :只用於互相交互的腳本,它將readline用於收集輸入行。讀到這幾句話不太明白什麼意思,先跳過。

-n :用於限定最多可以有多少字符可以作爲有效讀入。例如echo –n 4 value1 value2,如果我們試圖輸入12 34,則只有前面有效的12 3,作爲輸入,實際上在你輸入第4個字符‘3’後,就自動結束輸入。這裏結果是value爲12,value2爲3。

-p :用於給出提示符,在前面的例子中我們使用了echo –n “…“來給出提示符,可以使用read –p ‘… my promt?’value的方式只需一個語句來表示。

-r :在參數輸入中,我們可以使用’/’表示沒有輸入完,換行繼續輸入,如果我們需要行最後的’/’作爲有效的字符,可以通過-r來進行。此外在輸入字符中,我們希望/n這類特殊字符生效,也應採用-r選項。

-s :對於一些特殊的符號,例如箭頭號,不將他們在terminal上打印,例如read –s key,我們按光標,在回車之後,如果我們要求顯示,即echo,光標向上,如果不使用-s,在輸入的時候,輸入處顯示^[[A,即在terminal上 打印,之後如果要求echo,光標會上移。

-t :用於表示等待輸入的時間,單位爲秒,等待時間超過,將繼續執行後面的腳本,注意不作爲null輸入,參數將保留原有的值

2. Read的相關實例

a. 拼接文件

#將afile文件中的前三行與bfile中的前四行拼接在一起
while read -u3 i && read -u4 j;do
echo $i $j
done 3<afile 4<bfile

b. 輸入不在終端顯示

read -p "Input passwd:" -s Passwd
echo $Passwd

c. 限時輸入,否則退出

#延遲五秒,沒有輸入將自動退出
read -p "Input a number:" -t 5 Number

d. 讀取限定字符

#從輸入中取5個字符
read -p "Input a word:" -n 5 Word

e. 等待輸出q退出

#輸入,直到輸入q,將自動退出
read -dp -p "Input some words end with q:" word

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章