Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash/python脚本中组合两个命令_Python_Linux_Bash_Scripting - Fatal编程技术网

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

在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

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

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

Cmd 1:
>超时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
一起使用它。简而言之:你可以通过谷歌找到所有的东西。