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
JS,JQ實現暫停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