【问题标题】:Simpler way to repeatedly read lines and invoke a program重复读取行和调用程序的更简单方法
【发布时间】:2016-01-13 21:30:30
【问题描述】:

我想重复读取一行并以该行作为参数调用一个程序 — 实际上,使非交互式程序具有交互性。

还有比这更简单或更短的方法吗?

while read line; do
  cowsay $line
done

【问题讨论】:

  • 您从哪个来源阅读?
  • 已经很简单了
  • @Cyrus 标准输入
  • @anubhava 同意。能不能简单点?

标签: linux macos bash


【解决方案1】:

试试这个:

xargs -d '\n' -n 1 cowsay

【讨论】:

  • 打算向 OP 提出相同的建议,+1
  • 如果你想避免-I {},你需要-n 1。它们具有相同的目的。告诉xargs 每行运行一次命令。
  • 可以保存2个字符:xargs -I % cowsay %
  • @EtanReisner, -n 1 告诉 xargs 每个 argument 运行一次命令,而不是每行一次。
  • 你必须使用-d '\n' -n 1-I {} 不起作用,因为它会解释引号
猜你喜欢
  • 2021-01-05
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 2021-01-09
  • 2017-06-25
  • 1970-01-01
  • 2019-09-26
  • 2012-01-04
相关资源
最近更新 更多