bash - 如何将两个命令合并为一个命令

分享于 

2分钟阅读

ubuntu

  繁體

问题:

我在寻找将命令组合在一起的方法,这样我就可以从命令行一步完成。


convert Tess.jpg tess.tif


tesseract tess.tif tess




text2file name of scanned document




答案1:

可以使用&&


<command 1> && <command 2> && <command 3>



如果我理解正确,你想:


convert tess.jpg tess.tif && tesseract tess.tif tess




答案2:

构建一个简单的bash脚本可能是最好的选择。


答案3

我建议另一个解决方案。


convert Tess.jpg tif:- | tesseract stdin tess



这样可以避免创建中间文件tess.tif。相反,它将convert的输出直接传递给tesseract

许多命令行工具能够从stdin输出到stdout/input,而不是使用文件。

可以通过以下方式将它转换为命令:

  • 创建一个shell script:

echo '#!/bin/sh' > text2file


echo 'convert "$1.jpg" tif:- | tesseract stdin "$1"' >> text2file


chmod +x text2file


./text2file tess



这些命令将在当前目录中创建一个脚本,因此只能在当前目录中访问,要在目录中访问它,你需要将它移动到~/.local/bin ,使用命令mv text2file ~/.local/bin,之后,可以在以下目录中使用:

 
text2file tess



  • 创建bash函数

echo 'text2file() {' >> ~/.bashrc


echo 'convert "$1.jpg" tif:- | tesseract stdin "$1"' >> ~/.bashrc


echo '}' >> ~/.bashrc



需要用source ~/.bashrc重新加载.bashrc配置,或者打开新的终端。



COM  COMM  Comma  SIN  BASH  commands