工作過程中,為了監控狀態,經常要不斷地重複執行某個命令,因此寫了個指令碼來簡化操作
#! /bin/bash# filename:redo.sh
#usage: redo.sh [-d delaytime] [-c count] command
#預設間隔時間為15s,無限迴圈執行
delay=15
count=-1
while getopts d:c: option
do case $option in
d) delay=$optarg
;;c) count=$optarg
;;esac
done
shift $(expr $optind - 1)
i=0while [ $i -ne $count ]
do clear
echo "command:" $@
echo "count:" $i
echo "delay:" $delay
eval $@
i=$(expr $i + 1)
sleep $delay
done
防止shell指令碼重複執行
利用鎖機制,讓乙個特定的shell指令碼,每次只能執行乙個例項。具體來說,獲得鎖的指令碼例項,能夠繼續往下執行臨界區 沒有獲得鎖的例項,則只能等待。例如,要求指令碼只能順序訪問某個資源,例如磁碟檔案等,就可以參考下面的實現。bin bash file locking using bash.ver 0...
Shell指令碼避免重複執行的方法
很多用cron定時執行的shell指令碼可能會由於各種原因執行很久,會有必要在執行的時候先檢查一下自身是否還在執行。本文提供的linux shell指令碼用以檢查以命令sh 來執行的shell指令碼。要對其他東西進行唯一性檢查,可以稍微修改一下源 複製 如下 檢查通過sh命令執行的shell指令碼是...
linux命令之 repeat 重複執行命令
linux下有時候執行需要持續性測試一天執行命令,可以使用repeat重複執行該命令 進入 bashrc 中編輯乙個函式function repeat 加入內容如下 vim bashrc function repeat 退出後 source bashrc repeat n command 如果想讓每...