【问题标题】:How do I print a number with bash for shell script?如何使用 bash 为 shell 脚本打印一个数字?
【发布时间】:2017-10-02 00:08:33
【问题描述】:

抱歉,这是一个非常简单的问题,如何从 shell 脚本中打印 0?我的程序正在对一个数字进行 scanf,我希望脚本输入 0。

我试过echo 0,好像不行。

#!/bin/bash
make clean
ls -l
cat udpserver.c
make
ls -l
./udpserver
sleep 2
echo 0 | udpserver
sleep 2
echo 0 | udpserver

【问题讨论】:

  • Send string to stdin的可能重复
  • @BenjaminW。看他编辑的问题,不像复制那么简单。
  • 不要垃圾邮件标签。这与 C 无关。
  • @Barmar 现在不一样了……

标签: bash


【解决方案1】:

您不能使用管道将输入发送到您之前启动的程序,您必须在启动程序时使用它。如果要将多个命令通过管道传递给它,请将它们放在子 shell 中。

(sleep 2; echo 0; sleep 2; echo 0) | ./udpserver

【讨论】:

  • ( echo line1 ; echo line2 ) | yourProgprintf "line1\nline2\n" | yourProg - 可能性几乎是无穷无尽的:-)
  • @paxdiablo 我没有提到这一点,因为我说过使用 here-doc 最适合多行。
  • 我不明白,我哪里错了?这是我的脚本:
  • @sublimesummer 不要将代码放在 cmets 中。编辑您的问题以显示您的尝试。
  • Barmar,并没有批评您的答案(实际上我投了赞成票),但在某些情况下,heredoc 并没有削减它。具体来说,如果输入必须更复杂,例如( expr $bytes / 1024 ) | processKilobytes。正如您正确指出的那样,OPs 问题远没有接近那种复杂程度。
猜你喜欢
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多