停止脚本shell
1. Windows下Shell脚本运行错误展示错误信息并停止向下执行
shell脚本运行完毕之后会直接关闭窗口,不便于开发者查看运行结果,这点可以通过 sleep 来实现暂停
新建脚本 demoshell
在命令窗口执行 demoshell.sh xxxxx ,会启动 shell 窗口 ,打印 params1= xxxxx 之后就会关闭窗口
想要不关闭窗口可以在脚本的最后添加 sleep 来实现。
例如
再次执行 demoshell.sh xxxxx ,执行完毕之后,窗口不会直接关闭,可以查看运行结果
shell脚本还有一个不好的地方就是中间的一个命令运行失败之后还会继续向下执行,这是一个很危险的行为,并且向下执行的时候会冲掉失败信息,无法根据错误提示来修改脚本。
接下来执行一个不存在的任务,让shell脚本运行失败
执行失败之后由于 sleep 100 ,可以看到错误提示,如果没有 sleep 100 存在,执行失败之后也是立马关闭了窗口,看不到错误信息;而命令执行成功之后需要关闭窗口的,那能不能想办法做到两者兼顾呢?
答案是肯定的,原理就是判断命令执行状态,只有在命令执行失败的时候,触发sleep行为,阻塞命令向下运行
去掉 sleep 100 ,运行脚本,捕获到失败信息,显示错误信息,并停止向下执行
注释掉 ./gradlew :app:emptyTask -x lint ;
再次运行脚本,运行成功,直接就关闭了窗口
2. Shell 脚本 if 判断后,怎么终止当前脚本但不退出 shell
代码如下:
if list then
do something here
elif list then
do another thing here
else
do something else here
fi
EX1:
复制代码代码如下:
#!/bin/sh
SYSTEM=`uname -s` #获取操作系统类型,我本地是linux
if [ $SYSTEM = "Linux" ] ; then #如果是linux的话打印linux字符串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi #ifend
基本上和其他脚本语言一样。没有太大区别。不过值得注意的是。[]里面的条件判断。
3. 怎么给go程序写shell启动和停止脚本
一、Android应用启动服务执行脚本1如何写服务和脚本在android源码根目录下有/device/tegatech/tegav2/init.rc文件相信大家对这个文件都不陌生(如果不明白就仔细研读下android启动流程)。如果在该脚本文件中添加诸如以下服务:serviceusblp_tes...
4. Linux系统定时任务时shell脚本停止执行如何解决
linux下使用crontab命令被用来提交和管理用户的需要周期性执行的任务,示例如下:
crontab
-e
编辑周期任务
30
21
*
*
*
/etc/init.d/smb
restart
每晚的21:30重启smb
crontab命令说明:
crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
语法
crontab(选项)(参数)
选项
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
参数
crontab文件:指定包含待执行任务的crontab文件。
知识扩展
linux下的任务调度分为两类:系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
crontab文件的含义:
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:
minute
hour
day
month
week
command
顺序:分
时
日
月
周
其中:
minute:
表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符:
星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。
5. linux shell 脚本运行完毕后不能自动停止
最简单方法:
其实,你按一下回车就可以知道是否"结束"了吧?
更好的办法:
你在done后面加多两行:
------------代码开始------------
wait
echo "All is ok"
exit 0
------------代码结束------------
参考资料:
wait 命令
http://book.51cto.com/art/201205/338877.htm
6. 如何使用shell脚本停止应用
参考最底下的shell 代码,具体功能都有注释说明的。 使用时将代码存入文件中,比如 a.sh, 然后:
chmod+xa.sh#增加可执行权限
./a.shapp_name#替换app_name为你要中止运行的app名称,比如firefox,emacs,等等
下面是具体代码
#!/bin/bash
#要停止的应用名字
name=$1
#先要找到你要停止的应用的PID(进程号).这里用pidof命令来找
PID=`pidof$name`
#如果没有找到,结束
if[-z"$PID"];then
echo"Error:Process$nameisnotfound"
exit1
fi
#然后用kill命令来向进程发送信号来终止应用
#-9表示发送KILL信号,任何进程收到这个信号后都会无条件终止运行。
kill-9$PID
#完成
echo"Done"
7. shell脚本中怎么实现:暂停,按键继续
1、其中 yum install tomcat 执行过程中需要用键盘输入两次字符”y”以便确认选项,Dockerfile 脚本命令如下。
8. linux系统中周期性计划任务执行了shell死循环脚本,要怎么停止脚本
ps找到脚本进程
kill掉
9. 如何运行和结束xshell脚本
如何启用脚本文件: 1 1.打开xshell 5,在[工具]菜单中锁定[脚本]后选择[运行],后在弹出的:打开对话框。 2.选择脚本文件。 3.点击[确定]。 END 如何退出脚本 1.同样打开xshell,在[工具]菜单锁定[脚本]后选择[取消]。
10. 如何用java终止正在执行的shell脚本
// 用法:Runtime.getRuntime().exec("命令");
String shpath="/test/test.sh"; //程序路径
Process process =null;
String command1 = “chmod 777 ” + shpath;
try {
Runtime.getRuntime().exec(command1 ).waitFor();
} catch (IOException e1) {
e1.printStackTrace();
}catch (InterruptedException e) {
e.printStackTrace();
}