在写Shell脚本调用HTTP接口的时候,遇到了异步执行的需求,实现方法如下:
脚本test1.sh
#!/bin/bash echo '开始脚本 test1' #调用test2脚本并在后台运行 nohup sh test2.sh >/dev/null 2>&1 & date echo '结束脚本 test1'
- &:是指在后台运行,当用户退出(挂起)的时候,命令自动跟着结束
- nohup:不挂断的运行,注意并没有后台运行的功能,就是指用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行
脚本test2.sh
#!/bin/bash echo '开始脚本 test2' >> test2.txt date >> test2.txt sleep 60 date >> test2.txt echo '结束脚本 test2' >>test2.txt
通过test1.sh脚本嵌套test2.sh脚本执行,实现test2.sh和test1.sh异步操作
这不能算异步吧?
脚本里的echo不写入文件里的话。就算异步了吧?