首页 > 解决方案 > 在 Linux 中从 .txt 文件重定向到可执行文件

问题描述

我有一个文本文件,其中包含从 1 到 1000numbers.txtex2-1所有数字( ”。当您运行该文件时,您会看到:

please insert 1:

如果您输入 1,它会显示相同但带有 2,如果不是,它将打印“错误输入”并关闭。

我知道如何逐行读取文本文件:

#!/bin/bash
filename='numbers.txt'
while read line; do
echo "$line" #echo is just to show where the number is being saved
done < $filename

但是有什么方法可以重定向,而不是打印到屏幕上,而是转到可执行文件?

标签: linuxbash

解决方案


您可以在子外壳中运行所有这些命令,然后通过管道将其输出重定向到与可执行文件的运行实例对应的进程ex2-1

(filename='numbers.txt'; while read line; do echo "$line"; done < "$filename") | ex2-1

但是,当您逐行读取文件时,您可以简单地cat在文件上运行numbers.txt

cat numbers.txt | ex2-1

甚至更简洁,只需一个过程:

ex2-1 < numbers.txt

推荐阅读