Linux环境多个命令同时运行

Linux环境下,shell脚本实现多个命令同时运行

1、新建bash_test.sh
新建./out/文件夹,修改写入权限,详见问题解决2

2、编辑

#!/bin/bash
nohup python3 -u run0001.py >>./out/0001.out &
nohup python3 -u run0002.py >>./out/0002.out &

脚本命令说明:
nohup加在一个命令的最前面,表示不挂断的运行命令
-u 表示实时输出到.out
&加在一个命令的最后面,表示这个命令放在后台执行
‘>’,表示 输出重定向
‘>>’ 输出追加重定向(后续可以清空.out文件,清空方法见:out文件清理
1>/dev/null 表示正常不输出
2>.out 表示错误输出到.out文件
注意:windows环境下编辑sh文件,一定要查找\r\n,改成\n
详见参考文献

2.1 命令运行后删除文件

sleep 10 && echo “delete” && rm filename

详见:Shell实现命令先后执行

3、运行
修改权限

chmod +x ./bash_quant.sh	# 非root用户需要修改权限,x直接用777
sudo chmod +x ./bash_quant.sh	# 无权限提示chmod: changing permissions of './bash_quant.sh': Operation not permitted

运行脚本

./bash_test.sh	 # 运行脚本,或
source ./bash_test.sh

运行时报错bash: $’\r’: command not found,详见问题解决1

4、查看

ps -ef
ps aux | grep '进程名关键字'	# 根据关键字查进程

管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
“ps aux” 查看所有进程的命令。这时检索出的进程将作为下一条命令grep "common"的输入。
"grep “common” 选出所有含有关键字"common"的进程。
可以看到2个进程同时开始运行啦
在这里插入图片描述

5、停止
批量结束进程
pkill -f name
批量结束进程名中带有name的进程

附录:命令连接符号
可以使用 && 或 | | 或;(根据需要选择连接符号)等来连接多条命令(连接符之间灭有空格,论坛可能有对| |字符串设置了特殊效果)
&& 表示"与",一条命令执行出错,则后面命令不执行
|| 表示"或",一条命令执行成功,则后面命令不执行
; 表示无论执行成功与否,一路执行下去(;可以直接用回车替代)

问题解决:
1、报错:bash: KaTeX parse error: Can't use function '\r' in math mode at position 2: '\̲r̲': command not …‘\r‘: command not found 的解决方案](https://blog.csdn.net/chenbaixing/article/details/118083528)

2、-bash: /out/.out: No such file or directory
-bash: /out/.out: Permission denied

输出文件夹未创建,无权限写入out文件
WinSCP右键点击文件夹选属性
权限:其他,勾选W
在这里插入图片描述
参考文献:
linux shell 报错 -bash:$‘\r‘: command not found 的解决方案
out文件清理

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

779醒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值