2013-05-30 91 views
1

在一個bash腳本中,我「ssh進入另一個盒子;運行1個腳本,然後運行另一個腳本;我試圖弄清楚第一個腳本運行多長時間。內聯bash時間變量擴展

#!/bin/bash 
echo "Test Time Stamp" 
STARTTIME=`date +%s` 
ssh [email protected] 'scriptToRun.bat echo$?;/path/to/script.py '$STARTTIME `date +%s`'; exit $$? 

STARTTIME和第二個date +%s得到相同的值。

,如果我這樣做了以下

`date +%s`; sleep 10; `date +%s` 

這似乎是工作。

+3

剛開始時用'time'執行它:'time/path/to/script.sh' – fedorqui

+0

或在ssh行後面使用日期,或者爲遠程端寫一個包裝並使用單個ssh語句'ssh user @remote timeAndExec.bat' – perreal

回答

3

的問題是,在date此命令:

ssh [email protected] script `date` 

是SSH之前執行,類似這樣的案例:

ssh [email protected] process.bat $(ls .*a) 

可以逃避反引號,使遠程端執行的部分,然而,使用time

time ssh .... 

或者,做一個ssh line:

date 
ssh 
date 

會更簡單。

0

你會得到相同的時間,因爲下面一行

SSH [email protected]「scriptToRun.bat回聲$;?/路徑/到/ script.py '$ STARTTIME date +%s'

前計算執行。