linux - 将 shell 脚本的输出重定向到程序

标签 linux shell

我有一个名为 numbers.txt 的文件。在文件中我有从 1 到 1000 的所有数字。我有一个程序在 200 轮中插入 1 到 5。

我尝试了以下脚本:

while read p; do
  echo $((p % 5 + 1))
done <numbers.txt

它按预期打印 200 中从 1 到 5 的数字。

现在我需要将输出重定向到程序的输入。我试过这个:

./my-program < while read p; do
  echo $((p % 5 + 1))
done <numbers.txt 

但它失败了一个错误:

syntax error near unexpected token `do'

如何使用循环中的输入运行 ./my-program

最佳答案

你可以尝试使用for循环 喜欢

for i in `cat numbers.txt`; do
   echo $[ $i % 5 + 1 ]
done

关于linux - 将 shell 脚本的输出重定向到程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40565973/

相关文章:

linux - 如何将我的数据拆分成足够小的 block 以提供给 Seq?

linux - 使用 grep 和 * 获取确切的文件名

java - 通过java运行shell脚本

linux - bash 脚本将文本文件中的纪元转换为标准

linux - ssh 连接,known_hosts 为空,但我收到警告 "REMOTE HOST IDENTIFICATION HAS CHANGED"并询问密码

linux - 为什么 "sort file1 > file1"不起作用?

Python 无法识别 MacPorts 安装包

linux - 从另一个脚本停止正在运行的 bash 脚本

linux - 文件不包含节标题

java - 25k 用户后的大数据处理堆栈