shell腳本sleep
A. linux 2.6的shell腳本中如何kill掉 sleep進程
你是說找到系統中所有名字為sleep的進程ID,並且殺死它們,是嗎?
我沒有LINUX平台測試,我使用的HP-UX,下面的代碼你可能需要適當調整才可以使用。
下面的命令可以找出系統中的所有進程:
ps -e
要查找所有名稱為sleep的經常,有的系統可以給ps使用-n參數,例如:
ps -n sleep
但是通用一點的辦法是在ps -e的結果裡面grep,下面的命令即可:
ps -e | grep sleep
前面的ps命令輸出了進程的ID、終端等信息,如果只需要ID內容,可以使用cut -c來獲取,例如:
ps -e | cut -c1-6
獲取上面輸出的所有PID到內存變數的shell語句是:
pids=`ps -e | cut -c1-6`
B. shell腳本里怎麼sleep
直接加sleep n
sleep n, 延時n秒,當然你的命令和延時不能一個前台一個後台之行
C. shell腳本如何推遲執行其中一條命令
sleep..遲一些執行命令不好。
你可以用 &&來操作,這樣,上一條命令執行完畢。再執行下一次。比較靠譜。
D. shell腳本實現的ftp中連續put文件,怎樣在多句put命令間加入休眠sleep
不太明白為什麼要在ftp文件時加sleep,而且裡面還加exit?
要執行sleep和exit必須在<< END-END外,笨點的辦法寫一個函數就可以了。
#!/bin/sh
ftp2put()
{
ftp -i -n <<END
open 10.1.128.112 3839
user admin0012 admin
binary
prompt off
put FTPPerformanceTest/$1 $2
bye
END
}
ftp2put 10Apt.txt 10
sleep 1
ftp2put 20Apt.txt 20
sleep 1
ftp2put 30Apt.txt 30
sleep 1
exit
E. 寫一個unix上睡一毫秒的SHELL腳本,不支持usleep,sleep 0.001也不行。
UNIX的SHELL腳本下不支持睡1ms的命令,sleep睡至少1秒,支持帶自然數不支持帶小數的。
變通的辦法只能是讓SHELL調用外部的程序來睡,比如,用C寫一個簡單的程序,用usleep或delay之類的函數睡1ms,編譯好後,然後在SHELL裡面調用C程序,以達到睡1ms的目的。
其實這個也不太精確的,因為SHELL調用和執行外部的程序也需要一定時間的,實際上加起來總的時間還是大於1ms的。
F. 如何執行shell腳本其中一條命令
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:
復制代碼代碼如下:
cd /data/shell
./hello.sh
./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。
方法二:以絕對路徑的方式去執行bash shell腳本:
復制代碼代碼如下:
/data/shell/hello.sh
方法三:直接使用bash 或sh 來執行bash shell腳本:
復制代碼代碼如下:
cd /data/shell
bash hello.sh
或
復制代碼代碼如下:
cd /data/shell
sh hello.sh
注意,若是以方法三的方式來執行,那麼,可以不必事先設定shell的執行許可權,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數傳給sh(bash)命令來執行的。這時不是hello.sh自己來執行,而是被人家調用執行,所以不要執行許可權。那麼不用指定bash路徑自然也好理解了啊,呵呵……。
方法四:在當前的shell環境中執行bash shell腳本:
復制代碼代碼如下:
cd /data/shell
. hello.sh
或
復制代碼代碼如下:
cd /data/shell
source hello.sh
前三種方法執行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。
G. windows shell腳本命令中,暫停一段時間用哪個命令
VBS腳本中可以這樣:
WScript.Sleep
3000
時間單位為毫秒(milliseconds),因此,上面這句就是暫停3秒。
DOS批處理腳本中只能用ping命令來延時(這個時間是很不精確的)。例如:
@ping
127.0.0.1
-n
2
-w
1000
>
nul
另外,Windows
2003
Resource
Kit
提供了sleep的功能,你可以去微軟網站下載安裝。參見下面的鏈接吧。
參考資料:http://malektips.com/xp_dos_0002.html