好久沒寫過部落格了,年初換了份工作,就一直很忙,超級忙,甚至沒有時間看看書或者寫寫小工具自己玩玩,確實是一件蠻遺憾的事情。
魯迅說,時間就像海綿裡的水,擠擠總有的(魯迅說:這句話還真是我說的)。現在工作更偏向客戶端,每天就是跟著美術爸爸的屁股後邊,把特效出現的時間延遲一會,或者把特效向左移動一點,還是蠻無聊的。不如我上份工作。不過不重要,既來之則安之,抽空看看書,學學習,偶爾做個小東西,還是蠻有意思的。
好久沒寫了,廢話太多了,直接上需求。現在伺服器的**分了太多的目錄和檔案,每次grep的時候非常不方便,因為我不想grep一大堆不需要的目錄,每次都需要很久的時間,乾脆整合一下grep命令,寫個指令碼去搜尋。其實思路超級簡單:預設搜尋目錄,但是可以根據引數來決定要不要其他搜尋目錄,主要就是處理傳入引數的問題,最終的搜尋還是封裝了grep命令而已。
主要思路:1、有乙個預設的搜尋目錄,大多數時候使用這個。2、其他可能用到的目錄,需要保留,但是不需要的時候不搜尋。3、需要引數,例如全詞搜尋或者區分大小寫。
翠花,上**:
#!/bin/bash
######################################
# 查詢**
# ./find_script.sh 'text' args
# args:引數集,可省略採用預設搜尋及預設目錄。
# args目前支援(-i, -w, -skill -event)
# -i: 忽略大小寫
# -w: 全詞匹配
# -skill: 同時搜尋技能目錄
# -event: 同時搜尋事件目錄
######################################
path=('/home/script/entity' \
'/home/script/battle' \
'/home/script/utils')
#目錄全部加在一起搜尋太慢了 分開吧
#處理引數
ignore=false
full_word=false
find_skill=false
find_event=false
for arg in $*
do if [[ $arg == '-i' ]]
then
ignore=true
elif [[ $arg == '-w' ]]
then
full_word=true
elif [[ $arg == '-skill' ]]
then
find_skill=true
elif [[ $arg == '-event' ]]
then
find_event=true
fi
done
#########################################
#這一段在查詢前搞定目錄 需要新增目錄都加在這
if [[ $find_skill == true ]]
then
path=($ $)
fiif [[ $find_event == true ]]
then
path=($ $)
fi#########################################
#這一段在查詢前搞定引數 以後其他的都可以加在這
args=''
if [[ $ignore == true ]]
then
args="$args -i "
fiif [[ $full_word == true ]]
then
args="$args -w "
fi########################################
# 正式查詢
for path_one in $
do grep -r $1 $path_one --color $args
done
寫乙個簡單的shell指令碼
目前大家都知道,電腦系統不止是有windows,還有macos,linux的各種衍生版本,unix等作業系統。出去windows外的這些作業系統都可以編寫shell指令碼。寫指令碼可以幫助我們實現自動化運維,還有一些我們常用的小工具來使我們的操作變得更加快捷。下面我們來學習怎麼寫這個簡單的shell...
乙個shell指令碼
之前學過shell指令碼,但是工作中一直沒有用到,今天由於要搞乙個定時任務,為了防止重複啟動php指令碼,就需要寫乙個shell,下面是指令碼內容 bin bash 宣告要使用哪個shell 下面是備註檔案 這可是乙個好習慣奧 date 2012 7 18 version 1.0 設定相關變數 fi...
如何寫乙個shell指令碼並執行
linux下你可以有兩種方式執行shell指令碼 1 用shell程式執行指令碼 根據你的shell指令碼的型別,選擇shell程式,常用的有sh,bash,tcsh等 一般來說第一行 bin bash裡面指明了shell型別的,比如 bin bash指明是bash,bin sh則是sh 然後輸入命...