linux - 在 Linux 中从 .txt 文件重定向到可执行文件
问题描述
我有一个文本文件,其中包含从 1 到 1000numbers.txt
的ex2-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
但是有什么方法可以重定向,而不是打印到屏幕上,而是转到可执行文件?
解决方案
您可以在子外壳中运行所有这些命令,然后通过管道将其输出重定向到与可执行文件的运行实例对应的进程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
推荐阅读
- javascript - 事件不会从子元素冒泡到父元素
- python-3.x - Inputting new line to a text file using user input
- wordpress - woocommerce 按标题和元值排序
- mysql - 如何查看在 sql 中某一天的组中有多少个值?
- c++ - 如何在 C++ 中使用 Octave?
- r - 根据与 R 中不同的行和列/数据框的现有行分配标题
- asp.net-core - 如何在 startup.cs 文件的 ConfigureServices 方法中获取 appsetting 作为对象并将其传递给正在添加的另一个服务
- reactjs - MUI 导出打印 - 数据网格
- linux - 查找系统中的所有图像,然后将它们复制到一个文件夹中
- c# - 如何在类模板中使用文件范围的命名空间声明?