shell寫乙個搜尋指令碼

2021-10-10 05:17:31 字數 2167 閱讀 6509

好久沒寫過部落格了,年初換了份工作,就一直很忙,超級忙,甚至沒有時間看看書或者寫寫小工具自己玩玩,確實是一件蠻遺憾的事情。

魯迅說,時間就像海綿裡的水,擠擠總有的(魯迅說:這句話還真是我說的)。現在工作更偏向客戶端,每天就是跟著美術爸爸的屁股後邊,把特效出現的時間延遲一會,或者把特效向左移動一點,還是蠻無聊的。不如我上份工作。不過不重要,既來之則安之,抽空看看書,學學習,偶爾做個小東西,還是蠻有意思的。

好久沒寫了,廢話太多了,直接上需求。現在伺服器的**分了太多的目錄和檔案,每次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 然後輸入命...