怎么在shell 里,中断shell中某个命令,再执行下个命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在shell 里,中断shell中某个命令,再执行下个命令相关的知识,希望对你有一定的参考价值。

我的shell是这样的,文件名inmon.sh,内容如下:
inmon >/home/iip01.log
df -k >> /home/iip01.log
df -i >>/home/iip01.log
inmon 是软件的命令,不是系统自带的,
当执行inmon命令后,必须输入Q,或者Ctrl+C才能中断该命令。
但是执行这个shell后出现如下情况,
[root@CN11 xunjian]# ./inmon.sh

一直卡在这个界面,无法将脚本后面的2个命令执行完,必须手动使用Ctrl+C,才能执行完。
这个shell我定时每天7点执行,我不可能每天7点起床给每个服务器都按下Ctrl+C然后继续睡觉,
请教各位大神了,该怎么处理这个shell,使定时任务中自动中断inmon这个命令,然后执行下面两个命令。

参考技术A 我觉得可以用两个脚本来实现.
第一个运行 inmon >/home/iip01.log
第二个先杀掉 inmon进程
再运行
df -k >> /home/iip01.log
df -i >>/home/iip01.log
参考技术B expect脚本可以解决你的问题
expect脚本可以实现自动输入密码的脚本与你这个比较类似追问

你能直接给答案么?我也知道用expect能解决,但是又不知道具体怎么用

追答

#!/usr/bin/expect -f 取expect的header文件,如果你不知道可以用which expect查看
spawn inmon.sh expect用的不是bash所以你要用spawn去调用并执行bash脚本
expect ":" :是关键字,你根据你自己的进行设置,当有:时
send "q\r" 自动输入q 回车
interact 等待输入 结束

(上面这个是expect脚本,不能用sh *** 执行,只能用./文件名去执行 )

本回答被提问者采纳

如何用shell命令打开某个手机app

android中执行shell命令有两种方式:1.直接在代码中用java提供的Runtime这个类来执行命令,以下为完整示例代码。publ追问

比如打开直接打开qq

参考技术A 你那个QQ文件夹下都没有adb.exe这个文件。怎么可能调用的上。 查看原帖>> 参考技术B 这里以打开设置为例
am start -n "com.android.settings/.Settings"
例如安装sd卡里的安装包
pm install -r "/sdcard/aaa.apk"

可以将命令保存为shell脚本(.sh文件)执行 !

以上是关于怎么在shell 里,中断shell中某个命令,再执行下个命令的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本 自动安装问题

Shell Trap信号管理

在c\c++程序里怎么执行shell脚本命令?

linux/unix 的 shell编程里 pipe功能指的是啥功能?

如何用shell命令打开某个手机app

shell命令里有多个双引号怎么处理