linux 批处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 批处理相关的知识,希望对你有一定的参考价值。

如何把以下windows下的批处理文件在linux中实现
:loop
zhushuju.exe
time<enter
qsort.exe
time<enter
xuanpai.exe
Fc qsort.out xuanpai.out>result.txt
pause
goto loop
该批处理的意思是(每行与上面对应):
做标记
运行zhushuju.exe
显示此时时间(精确到0.01秒)
运行qsort.exe
显示此时时间(精确到0.01秒)
运行xuanpai.exe
比较qsort.out和xuanpai.out将结果送入result.txt
暂停(按任意键继续)
转到标记处

注:zhushuju.exe
qsort.exe
xuanpai.exe
均为自己写出的可执行文件

这个写成脚本就可以实现了,你说的: goto是一个循环,在shell里构建循环,例如
(linux执行不了windows的程序,内核不同,如果你要运行exe,需要装wine,我就用linux的程序来执行了)
datetime=$(date +%H%M%S) (这里设定的是时间,你可以选择参数,我是时分秒)
loop (){
diff qsot.txt xuanpai.txt

sh zhushuju.sh
if [ $? -eq 0 ];then
echo “$datetime”
else
return (返回)
fi
sleep 10
sh qsort.sh > qsort.txt (执行后输出到qsort.txt)
if [ $? -eq 0 ];then
echo "$datetime"
else
return
fi
sleep 10
sh xuanpai.sh > xuanpai.txt
sleep 5
loop

read -p "end"

可能有什么错误,呵呵。追问

脚本有拓展名吗?是什么?
要输出毫秒怎么办?

追答

可以不加后缀,也可以是任何的后缀,但是你必须在脚本开头加上 #!/bin/sh

毫秒是看参数,date参数里%N 可以做到纳秒 我也就实验过,你试试吧

参考技术A 你还不如直接描述一下你打算在linux下干什么?
达到什么样的结果?里边有.exe,就算要写这个脚本,起码你应该提供这三个文件
在linux下运行的程序。
参考技术B 注释一下嘛,看不懂windows下的批处理 参考技术C 你的三个EXE文件能在LINUX运行起来吗?或者说你脚本想表达什么意思? 参考技术D 看不懂呢

linux 多线程信号处理总结

参考技术A APUE的说法:每个线程都有自己的信号屏蔽字,但是信号的处理是进程中所有的线程共享的,这意味着尽管单个线程可以阻止某些信号,但当线程修改了与某个信号相关的处理行为后,所有的线程都共享这个处理行为的改变。这样如果一个线程选择忽略某个信号,而其他线程可以恢复信号的默认处理行为,或者为信号设置一个新的处理程序,从而可以撤销上述线程的信号选择。

进程中的信号是送到单个线程的,如果信号与硬件故障或者计时器超时有关,该型号就被发送到引起该事件的线程中去,而其他的信号则被发送到任意一个线程。

sigprocmask的行为在多线程的进程中没有定义,线程必须使用pthread_sigmask

总结:一个信号可以被没屏蔽它的任何一个线程处理,但是在一个进程内只有一个多个线程共用的处理函数。......

转自: http://blog.chinaunix.net/uid-12274566-id-3050955.html

以上是关于linux 批处理的主要内容,如果未能解决你的问题,请参考以下文章

Linux 批处理

Linux批处理

linux中批处理文件顺序执行命令的输入

Linux启动故障处理

每天一个linux命令--批处理

linux 在批处理中,完整路径有空格的处理方式(加引號)