在bash/python脚本中组合两个命令

2024-09-30 06:25:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经用几个命令完成了我的工作,但我需要手动操作,每次都必须观察工作。所以我希望所有的事情都能自动完成,并且只有当期望的结果发生时才会通知我。所以我的情况如下

我使用脚本stv.sh创建结果

命令1:>> timeout 15m ./stv.sh -parameter1 -parameter2 -output file file1.txt

然后我从我的原始tex文件到另一个文件获取必要的字段

命令2:>> sed file1.txt -parameter1 -parameter2 -output file cleanfile1.txt

然后我在文本文件中添加了一个测试行

Cmd 3:>> cat testline.txt >> cleanfile1.txt

然后,我将新文件与现有结果进行比较,以找到任何匹配的行

命令4:>> comm -12 myexistingresults.txt <(cat cleanfile1.txt | sort | uniq ) > matching.txt

现在,在matching.txt中,在任何情况下都至少会出现一个结果,因为我们已经将testline.txt与Cmd 2一起包含在一起。但如果有多行,则需要运行下面的命令

命令5:>> grep -A 2 $secondlineofmatchingtxt file1.txt > victory.txt

这意味着我找到了一条匹配的线。因此,在matching.txt中,如果有多行需要以某种方式通知我(通过发送电子邮件等),否则如果matching.txt中只有一行,则脚本需要再次从Cmd 1开始

如何使用简单的bash或python脚本来实现这一目标


Tags: 文件命令txt脚本cmdoutputsh情况
1条回答
网友
1楼 · 发布于 2024-09-30 06:25:04

创建一个文件,将解释器添加到文件的顶部#!/bin/bash,然后将所有命令输入到一个文件中,对该文件授予可执行权限,然后运行该文件

对于电子邮件部分,您可能希望使用脚本./stv.sh文件的退出代码。成功运行此脚本后,找到退出代码,并创建一个if语句来测试退出代码是否匹配,如果匹配,则将发送电子邮件。否则,另一种方法是检查file1.txt是否存在,但这可能不准确

相关问题 更多 >

    热门问题