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