これがbashのループです:
while [$#-ge 1]; 行う ケース$1 -a) シフト NUM_AGENTS = $ 1 ;; -h) シフト HOST_NAME = $ 1 ;; -t) シフト TIME_STAGGER = $ 1 ;; -国連) シフト USER_NAME = $ 1 ;; -pw) シフト USER_PASS = $ 1 ;; -p) シフト TARGET_PAGE = $ 1 ;; -s) シフト COMMON_SID = $ 1 ;; esac シフト 終わり
引数がコマンドラインの値を入力するように、これをperlで変換するにはどうすればよいですか?
php loadAgent_curl.php $ NUM_AGENTS $ HOST_NAME $ procStartTime $ i $ TARGET_PAGE $ reqlogfile $ resplogfile $ USER_NAME $ USER_PASS $ execDelay $ COMMON_SID&
-------質問に追加:
これは確かに役立ちます、そして私は本当に感謝しています、getOptionsの外でこれらのパラメータにアクセスする方法はありますか?これがbashスクリプトの残りの部分です:
私の$i= "0"; 私の$startTime=date +%s
; startTime = $ [$ startTime + $ NUM_AGENTS + 10] 私の$PWD=pwd
; 私の$logdir= "\ $ PWD / load-logs"; system(mkdir $ logdir / $ startTime); 私の$reqlogfile= "$ logdir / $ startTime / req.log"; 私の$resplogfile= "$ logdir / $ startTime / resp.log";印刷"\n"; 印刷"##################\ n"; 印刷"起動要求\n"; 印刷"ホスト名:\ $ HOST_NAME \ n"; print "TARGET PAGE:\ $ TARGET_PAGE \ n"; print "#エージェント:\ $ NUM_AGENTS \ n"; print "EXECUTION TIME:\ $ startTime(0〜 \ $ TIME_STAGGER秒の間でランダムにずらして)\ n"; print "REQ LOG FILE:$ reqlogfile \ n"; print "RESP LOG FILE:$ resplogfile \ n"; 印刷"##################\ n"; 印刷"\n"; # # highestStart = $ startTime
$ startTime + = $ ARGV [0] + 5; 私の$dTime= localtime($ startTime); 印刷"\n ##################\n起動リクエスト\n カウント:$ ARGV [0] \ n 遅延:| 1 \ n スクリプトは次の場所で起動します:$ dTime \ n ################## \ n \ n "; while($ ARGV [0]> $ i) {{ $ i ++; system( "php avtestTimed.php $ ARGV [0] $ ARGV [2] $ startTime"); print "RUN system('php avtestTimed.php $ ARGV [0] $ ARGV [2] $ startTime'); \ n"; 睡眠1; }
# # while [$ NUM_AGENTS -gt "$ i"] 行う i = $ [$ i + 1] execDelay = $((RANDOM%$ TIME_STAGGER))"。"$((RANDOM%100)) procStartTime = $ [$ startTime] procStartTime = $ [$ startTime + $ execDelay] if [$ procStartTime -gt $highestStart] それから highestStart = $ procStartTime fi echo "ステータス:$execDelay秒の遅延でリクエスト$iをキューに入れます"
echo "'->コマンド:php loadAgent_curl.php $ NUM_AGENTS $ HOST_NAME $ procStartTime $ i $ TARGET_PAGE $ reqlogfile $ resplogfile $ USER_NAME $ USER_PASS $ execDelay $ COMMON_SID"
php loadAgent_curl.php $ NUM_AGENTS $ HOST_NAME $ procStartTime $ i $ TARGET_PAGE $ reqlogfile $ resplogfile $ USER_NAME $ USER_PASS $ execDelay $ COMMON_SID& 睡眠1 終わり
echo "ステータス:キューに入れられたリクエストの準備が整うのを待っています" while [
date +%s
-lt $ startTime] 行う 睡眠1 終わり # echo "ステータス:最後のリクエストが発行されるのを待っています" while [date +%s
-lt $ highestStart] 行う 睡眠1 終わり # echo "ステータス:最後に発行された応答" # echo "ステータス:応答ログファイルが作成されるのを待っています" その間 [ !-e "$ resplogfile"] 行う 睡眠1 終わり # while [wc -l "$resplogfile"| awk '{print $1'}
-lt $ NUM_AGENTS] 行う #echo "(wc -l "$resplogfile"| awk '{print $1'}
記録された$ NUM_AGENTS応答の)" 睡眠1 終わり エコー「ステータス:終了」真実である間; 行う read -p "リクエストログを表示しますか?[y / n]" yn ケース$yn [Yy] *)cat $ reqlogfile; 壊す;; [Nn] *)終了;; *)echo"はいまたはいいえで答えてください。";; esac 終わり
真実である間; 行う read -p "応答ログを表示しますか?[y / n]" yn ケース$yn [Yy] *)cat $ resplogfile; 壊す;; [Nn] *)終了;; *)echo"はいまたはいいえで答えてください。";; esac 終わり