1:shell腳本實現(xiàn)for循環(huán):for
示例:
#!/bin/bash
echo "number of arguments is $#"
echo "What you input is: "
# $@:輸入的參數(shù)
for argument in "$@"
do
echo "$argument"
done
2:shell腳本實現(xiàn)字符串切割:split
示例:
str="hello,world,i,like,you,babalala"
arr=(${str//,/ })
示例:str按照","切分成一個數(shù)組,并遍歷輸出
#!/bin/bash
str="hello,world,i,like,you,babalala"
arr=(${str//,/ })
for i in ${arr[@]}
do
echo $i
done
3:shell中字符串替換:sed
語法:sed "s/要被替換的字符串/新的字符串/g" file
#將文件名為example的文件中的test替換為mytest。
#如果沒有g(shù)標記猎醇,則只有每行第一個匹配的test被替換成mytest蒋失。
sed "s/test/mytest/g" example
示例:
#!/bin/bash
sed -i "s/172.30.0.122:1521:iboxpay/要替換的IP:端口:實例/g" /home/wdk/proxool.xml
sed -i "s/tst/要替換的數(shù)據(jù)庫用戶名/g" /home/wdk/proxool.xml
sed -i "s/ok/要替換的數(shù)據(jù)庫密碼/g" /home/wdk/proxool.xml
cat /home/wdk/proxool.xml
4:shell腳本三劍客:grep、sed段审、awk
awk示例
5:shell腳本中將shell命令賦值給變量
# shell腳本輸出當(dāng)前目錄:英文符號的``引用
home =`pwd`
# shell腳本輸出前一級的目錄:
home=`cd ../ && pwd`
6:shell腳本創(chuàng)建文件夾:mkdir
注:一般使用 -p 即可。mkdir -p xx
-p:遞歸創(chuàng)建目錄,如果目錄事先存在篓叶,也不會報錯*
-m:設(shè)置新創(chuàng)建的目錄的默認目錄對應(yīng)的權(quán)限
-v:顯示創(chuàng)建的過程
7:shell腳本的拷貝:cp
注:一般使用 cp -rf source target 即可。
-a:此選項通常在復(fù)制目錄時使用羞秤,它保留鏈接缸托、文件屬性,并復(fù)制目錄下的所有內(nèi)容瘾蛋。其作用等于dpR參數(shù)組合俐镐。
-d:復(fù)制時保留鏈接。這里所說的鏈接相當(dāng)于Windows系統(tǒng)中的快捷方式哺哼。
-f:覆蓋已經(jīng)存在的目標文件而不給出提示佩抹。
-i:與-f選項相反叼风,在覆蓋目標文件之前給出提示,要求用戶確認是否覆蓋棍苹,回答"y"時目標文件將被覆蓋无宿。
-p:除復(fù)制文件的內(nèi)容外,還把修改時間和訪問權(quán)限也復(fù)制到新文件中枢里。
-r:若給出的源文件是一個目錄文件孽鸡,此時將復(fù)制該目錄下所有的子目錄和文件。
-l:不復(fù)制文件栏豺,只是生成鏈接文件彬碱。
8:shell腳本讀取".properties"文件
封裝了以下讀取".properties"文件的函數(shù),
e.g:echo $(getVarFormProperties "test" "config.properties")
function getVarFormProperties(){
# echo awk -v ri="/^$1=/" -F "=" '$0~ri{print $2}' $2
# 此處^$1=為了使匹配能夠全字匹配
# -v 設(shè)置變量ri奥洼,為了能在awk中使用變量傳遞
echo $(awk -v ri="^$1=" -F "^$1=" '$0~ri{print $2}' $2)
}