在bash/python脚本中组合两个命令
我已经用几个命令完成了我的工作,但我需要手动操作,每次都必须观察工作。所以我希望所有的事情都能自动完成,并且只有当期望的结果发生时才会通知我。所以我的情况如下 我使用脚本stv.sh创建结果 Cmd 1:在bash/python脚本中组合两个命令,python,linux,bash,scripting,Python,Linux,Bash,Scripting,我已经用几个命令完成了我的工作,但我需要手动操作,每次都必须观察工作。所以我希望所有的事情都能自动完成,并且只有当期望的结果发生时才会通知我。所以我的情况如下 我使用脚本stv.sh创建结果 Cmd 1:>超时15m./stv.sh-parameter1-parameter2-output file file1.txt 然后我从我的原始tex文件到另一个文件获取必要的字段 Cmd 2:>sed file1.txt-parameter1-parameter2-output file cleanfi
>超时15m./stv.sh-parameter1-parameter2-output file file1.txt
然后我从我的原始tex文件到另一个文件获取必要的字段
Cmd 2:>sed file1.txt-parameter1-parameter2-output file cleanfile1.txt
然后我在文本文件中添加了一个测试行
Cmd 3:>cat testline.txt>>cleanfile1.txt
然后,我将新文件与现有结果进行比较,以找到任何匹配的行
Cmd 4:>comm-12 myexistingresults.txt matching.txt
现在,在matching.txt中,在任何情况下都至少会出现一个结果,因为我们已经将testline.txt与Cmd 2一起包含在一起。但如果有多行,则需要运行下面的命令
Cmd 5:>grep-一个2$secondlineofMatchingText文件1.txt>victory.txt
这意味着我找到了一条匹配的线。因此,在matching.txt中,如果有多行需要以某种方式通知我(通过发送电子邮件等),否则如果matching.txt中只有一行,则脚本需要再次从Cmd 1开始
如何使用简单的bash或python脚本来实现这一目标?创建一个文件,在文件顶部添加解释器,
#/bin/bash
然后将所有命令输入到一个文件中,对该文件授予可执行权限,然后运行该文件
对于电子邮件部分,您可能希望使用脚本
/stv.sh
文件的退出代码。成功运行此脚本后,找到退出代码,并创建一个if
语句来测试退出代码是否匹配,如果匹配,则将发送电子邮件。否则,另一种方法是检查file1.txt
是否存在,但这可能不准确。将所有命令放在文件中,您就已经有了bash脚本。最终它可能需要在第一行中使用shebang
/bin/bash
您可能需要使其可执行chmod+x script
,然后您可以像任何其他程序一样运行script
。如果您询问如何发送电子邮件,则有许多控制台程序可以发送邮件-请参阅,但并非所有控制台程序都可以与外部邮件服务器一起工作mutt
或swak
似乎很有趣-他们甚至可以发送附件。您可以使用命令wc-l
(wordcount
,带有只计算行的选项)来计算文件中的行数-并且您可以在bash
ie中与if/then/fi
一起使用它。简而言之:你可以通过谷歌找到所有的东西。