在 bash / python 脚本中组合几个命令
Combining couple of commands inside the bash / python script
我已经用几个命令完成了我的工作,但我需要手动操作并且每次都必须观察工作。所以我希望一切都自动完成,只有在需要的结果发生时才会通知我。所以我的场景如下;
我用我的脚本创建结果stv.sh
命令 1:>> timeout 15m ./stv.sh -parameter1 -parameter2 -output file file1.txt
比我从我的原始 tex 文件中提取必要的字段到另一个文件
命令 2:>> sed file1.txt -parameter1 -parameter2 -output file cleanfile1.txt
比我在文本文件中添加测试行
命令 3:>> cat testline.txt >> cleanfile1.txt
然后我将新文件与现有结果进行比较以找到任何匹配行
命令 4:>> comm -12 myexistingresults.txt <(cat cleanfile1.txt | sort | uniq ) > matching.txt
现在,在 matching.txt 中,至少会出现 1 个结果,因为我们已经将 testline.txt 包含在 Cmd 2 中。但是如果不止一行,下面的命令需要运行;
命令 5 : >> grep -A 2 $secondlineofmatchingtxt file1.txt > victory.txt
这意味着我找到了匹配的行。因此,在 matching.txt 中,如果有不止一行我需要以某种方式得到通知(通过发送电子邮件等),否则如果 matching.txt 中只有一行,脚本需要再次从 Cmd 1 开始。
如何使用简单的 bash 或 python 脚本建立此目标?
创建一个文件在文件的顶部添加解释器,#!/bin/bash
然后将所有命令输入一个文件,允许对文件的可执行权限然后运行文件。
对于电子邮件部分,您可能希望使用脚本 ./stv.sh
文件的退出代码。 运行成功执行此脚本后,找到退出代码,并创建一个if
语句来测试退出代码是否匹配,如果匹配,则发送电子邮件。否则另一种方法是检查 file1.txt
是否存在,但这可能不准确。
我已经用几个命令完成了我的工作,但我需要手动操作并且每次都必须观察工作。所以我希望一切都自动完成,只有在需要的结果发生时才会通知我。所以我的场景如下;
我用我的脚本创建结果stv.sh
命令 1:>> timeout 15m ./stv.sh -parameter1 -parameter2 -output file file1.txt
比我从我的原始 tex 文件中提取必要的字段到另一个文件
命令 2:>> sed file1.txt -parameter1 -parameter2 -output file cleanfile1.txt
比我在文本文件中添加测试行
命令 3:>> cat testline.txt >> cleanfile1.txt
然后我将新文件与现有结果进行比较以找到任何匹配行
命令 4:>> comm -12 myexistingresults.txt <(cat cleanfile1.txt | sort | uniq ) > matching.txt
现在,在 matching.txt 中,至少会出现 1 个结果,因为我们已经将 testline.txt 包含在 Cmd 2 中。但是如果不止一行,下面的命令需要运行;
命令 5 : >> grep -A 2 $secondlineofmatchingtxt file1.txt > victory.txt
这意味着我找到了匹配的行。因此,在 matching.txt 中,如果有不止一行我需要以某种方式得到通知(通过发送电子邮件等),否则如果 matching.txt 中只有一行,脚本需要再次从 Cmd 1 开始。
如何使用简单的 bash 或 python 脚本建立此目标?
创建一个文件在文件的顶部添加解释器,#!/bin/bash
然后将所有命令输入一个文件,允许对文件的可执行权限然后运行文件。
对于电子邮件部分,您可能希望使用脚本 ./stv.sh
文件的退出代码。 运行成功执行此脚本后,找到退出代码,并创建一个if
语句来测试退出代码是否匹配,如果匹配,则发送电子邮件。否则另一种方法是检查 file1.txt
是否存在,但这可能不准确。