将bash代码放入函数中

2020-06-21 03:32:05

我把学位论文写在Jupyter笔记本上。然后,我用Pandoc将它们转换为降价格式,最后转换为pdf格式。我还必须输出一个办公室文件,以便我的导师也能处理它。初始代码为:

#!/usr/bin/env bash ProcessName=";PDF Expert";Number=$(PS AUX|grep-v grep|grep-ci";$ProcessName";)#echo$number如果[";$number";-le 0],则打开-a';PDF Expert';fipandoc final.md\format.yaml\--filter pandoc-citeproc\--目录\--number-sections\--pdf-engine=xelatex\--缩进代码-class=python\--Highlight-style=pygments\--template=./eisvogel2.tex\--listings\-o final.pdfpandoc final.md\format.yaml\-过滤器窗格。-number-sections\--缩进代码-class=python\--Highlight-style=pygments\--template=./eisvogel.tex\-V lang=es\-o final.docxopen final.pdf。

由于PDF Expert不是先运行的,脚本需要30秒以上才能完成:

在这个脚本中,我做的是彼此独立的不同事情。这是将其并行化的绝佳机会。幸运的是,通过将不同的步骤封装到bash函数中,很容易做到这一点:

#!/usr/bin/env bash函数openapp(){ProcessName=";PDF Expert";Number=$(PS AUX|grep-v grep|grep-ci";$ProcessName";)#echo$number如果[";$number";-le 0]则打开-a';PDF Expert';fi}函数makepdf(){pandoc final.md\format.yaml\--filter pandoc-citeproc\--目录\--number-sections\--pdf-engine=xelatex\--缩进代码-class=python\--Highlight-style=pygments\--template=./eisvogel2.tex\--listings\-o final.pdf}函数makedoc(){panvogel2.tex\--listings\-o final.pdf}函数makedoc(){panvogel2.tex\--listings\-o final.pdf}函数makedoc(){panvogel2.tex\--listings。pandoc-citeproc\--目录表\--number-sections\-缩进代码类=python\--Highlight-style=pygments\--template=./eisvogel.tex\-V lang=es\-o final.docx}makepdf&;make doc&;openappwaitopen final.pdf。

此代码的作用与上面相同,将不同的步骤封装到函数中。注意makepdf&;makedoc&;openapp行。我在这里并行运行这3个函数。WAIT命令就是这样做的,等待前面的事情完成。完成所有操作后,将打开pdf文件。我们现在来看一下时间:

另外,在bash中,代码不会一次全部求值。如果在执行脚本时编辑该脚本,则该脚本的行为会有所不同。将其封装在函数中也解决了这个问题。