1. 程式人生 > >shell指令碼不暫停程序,暫停幾秒執行下一條shell命令

shell指令碼不暫停程序,暫停幾秒執行下一條shell命令

需求如下:

跑monkey指令碼如果遇到異常結束,則使用logcat輸出日誌,輸出三秒後停止輸出

如果使用sleep 命令的話,則會導致logcat在sleep的時候也暫停執行了

解決方法如下,通過while迴圈暫停3秒:

ti1=`date +%s`    #獲取時間戳
ti2=`date +%s`
i=$(($ti2 - $ti1 ))

while [[ "$i" -ne "3" ]]
do
	ti2=`date +%s`
	i=$(($ti2 - $ti1 ))
done

以下是我monkey指令碼中實現的程式碼(monkey異常結束或正常結束後,會自動擷取3秒的logcat 日誌)

logcat -c  #清除日誌
monkey -p com.yixia.videoeditor --throttle 1000 -s 82  -v -v -v  --pct-appswitch 20 --pct-majornav 10 --pct-touch 30 --pct-syskeys 10 --pct-motion 25 --pct-nav 5 20000 > /sdcard/monkey/monkey.log
logcat -v time >  /sdcard/monkey/logcat.log & #  如果執行monkey跑出問題異常結束 或者正常跑完monkey,則列印日誌(只有3秒的日誌獲取時間)

ti1=`date +%s`    #獲取時間戳
ti2=`date +%s`
i=$(($ti2 - $ti1 ))
while [[ "$i" -ne "3" ]]   
do
	ti2=`date +%s`
	i=$(($ti2 - $ti1 ))
done

kill $!   #結束後臺執行的logcat程序
echo "-----------------------  測試完成標註!!!  -----------------------" >> /sdcard/monkey/logcat.log



相關推薦

shell指令碼暫停程序暫停執行shell命令

需求如下: 跑monkey指令碼如果遇到異常結束,則使用logcat輸出日誌,輸出三秒後停止輸出 如果使用sleep 命令的話,則會導致logcat在sleep的時候也暫停執行了 解決方法如下,通過while迴圈暫停3秒: ti1=`date +%s` #獲取時間戳

js迴圈中延遲執行段程式碼

原因:由於js程式碼執行策略是幾段程式碼可以同時執行,而不是先等上一句執行完再執行下一句。 原理:假設有兩段程式碼需要先走執行,先執行程式碼片段1再執行程式碼片段2。那麼程式碼2必須在程式碼1中執行。 專案場景:ajax獲得了多條提示資訊,需要頁面逐一自定義彈框顯示出來,這

python某段程式碼執行時間過長如何跳過執行步?

在工作中遇到過 個問題 執行一條程式碼時間過長 而且還不報錯,卡死在那。還要繼續執行下面程式碼,如何操作。 下面是個簡單的例項 pip安裝 第三方eventlet這個包 import time import eventlet#匯入eventlet這個模組 eventlet.monke

shell指令碼暫停教程等待一定時間之後再執行指令碼中的命令

學習springcloud時想要編寫一個指令碼開啟eureka和配置中心的服務,由於配置中心需要註冊到eureka上所以需要等到eureka開啟完成再開啟,可以在指令碼中使用一個while迴圈達到我們的目的 ti1=`date +%s` #獲取時間戳 t

JSJQ實現暫停FOR循環間隔後再繼續執行

doctype on() 執行 apps string min html fun count <!DOCTYPE html><head><script src="https://apps.bdimg.com/libs/jquery/2.1.4/

Shell 指令碼每隔100行插入記錄並且記錄第一列包含行號其他列

1、例子:每隔100行插入一條記錄,並且此條記錄的第一列包含行號,其他列與第一行相同 #!/bin/sh var="00001" # 變數 cat a.txt|awk 'NR==1'|while read line # 獲取檔案第一行

shell指令碼判斷某個linux程式是否在正常執行如果是就啟動他

#! /bin/bash #  author qzlink #  time  2014-9-19 #  program : check program running .. function check(){     count=`ps -ef |grep $1 |grep

書摘—20學應酬30歲只能發愁

作者:胡鋒 生活中,應酬無處不在 如果在你所在的公司中,有升職者宴請同事的習慣,你一定不要破例,你若不請,就會落下一個“小氣”的名聲。如果人家都沒有請過,而你卻獨開先例,同事們就會以為你太招搖。所以,入鄉隨俗,大家如何做,自己跟著做就行。 一門人情練達的學問 一般來說,應酬分為三種類型,即抽出型應

shell指令碼檢視某個程序是否在執行

#!/bin/bash   PROC_NAME=$1   ProcNumber=`ps -ef |grep -w $PROC_NAME|grep -v grep|wc -l`   if [ $ProcNumber -le 0 ];then&

Shell指令碼中計算字串長度的種方法

1:wc -L wc -l (小寫)是獲取當前字串內容的行數,wc -L (大寫)可以獲取到當前行的長度,因此對於單獨行的字串可以用這個簡單的方法獲取。 $ str="123.?+ abc" $ echo "$str" |wc -L 10 2: expr lengt

Linux shell 指令碼新增環境變數監控web 服務是否正常

例項1:寫shell指令碼定義函式設定環境變數路徑 prepend() { [ -d “$2” ] && eval $1="$2${$1:+’:’$$1}" && export $1 } 執行 prepend PATH /opt/myapp/bin 說明:

Shell指令碼監控Storm叢集郵件報警

這個指令碼只是一個臨時的方案,在全面的監控,報警系統完成之前為了節省一定的人力而寫的 之前寫過一個指令碼用來監控Storm的Nimbus和Supervisor程序,在檢測到程序不存在時會進行重啟,在實際使用中發現,該指令碼雖然可以不斷重啟,但某些情況下並不能完成自動重啟,人

shell 指令碼寫守護程序

最近在做伺服器,因為是全天候執行,伺服器也不是說百分之百穩定,永遠不崩潰永不宕機啥的,所以就算宕機了也不要緊,關鍵是能及時啟動,不能影響玩家體驗,所以 必須得有守護程序守護著,如果伺服器一崩潰,立馬重啟,保證整個業務能繼續執行 我的啟動指令碼 start.sh #!/bi

通過shell指令碼做定時任務用sqoop匯出資料

一、shell指令碼#!/bin/bash  #coding=UTF-8  #date_year=$(date +%Y)  #echo $date_year  source /etc/profile  for((i=3;i<=8;i++));  do  /opt/sqo

自動獲取shell指令碼的絕對路徑執行路徑

檔名 test.sh #!/bin/sh echo "指令碼所在的資料夾名:" dirname $0 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" echo "指令碼的執行路徑

控制shell指令碼執行頻率、解決shell指令碼能修改環境變數等問題

問題描述:這幾天室友遇到一個麻煩,他寫的一個shell指令碼在事件觸發時總是被執行多次而出錯,他想要控制指令碼的執行次數,即每次觸發僅執行一次就行了。懶得去研究為什麼被多次觸發,希望僅僅在指令碼內部寫幾行程式碼便解決這個問題。下面我向大家介紹一下我想的一種解決辦法。 解決辦

shell指令碼排序去重

一條命令搞定: awk '!a[$0]++' file 如果是第一次出現a[$0]++的值為0(假),而!a[$0]++的值就為1(真),之後就執行print $0 第二次或者兩次以上的出現a[$0]++的值就為大於0的整數值(真),例如1,2,3...,而!a[$0]++的值就為0(假),之

Linux shell指令碼中父子程序與變數的分析

轉載地址:https://site.douban.com/196781/widget/notes/12220452/note/261008964/ 【問題】一個 test.sh 裡面這麼寫 #! /bin/bash read test echo $test exit 0 儲

shell指令碼之建立檔案自動複製貼上檔案

      shell指令碼是為了方便我們集中處理某些事情。而不用我們挨個操作。一定程度上,確實能給我們帶來很大的方便。這裡是執行一個批量複製貼上檔案的指令碼。 一、使用場景       在APP升級的時候,需要修改對應專案下的版本號等。如果專案比較多的話,

tomcat監控指令碼(監控程序測試介面告警動作為傳送郵件)

伺服器環境:centos7.2 64位 tomcat8.5.6 tomcat 監控功能共需要兩個指令碼,如下: initMonitor.sh #!/bin/sh #初始化監控指令碼相關變數 export tomcat_name=apac