【问题标题】:Reading input in bash from stdin从标准输入读取 bash 中的输入
【发布时间】:2015-11-29 18:48:18
【问题描述】:

这是我的输入:

99116784 12 12 0 点

99116784 12 12 0

这是我的代码

 while read line || [[ -n "$line" ]];
    do for var in $line 
          do echo $var
       done
 done

如果我在此期间打印 $line,则打印 p 只是做 echo $var 不打印或不知道 p 在那里,有人知道为什么吗?

【问题讨论】:

  • p 在此循环中打印。更清楚地显示你在做什么,最终目标是什么以及你正在运行什么命令。
  • 由于缺乏来自 OP 的更多信息,我投票以“无法再重现的问题或简单的印刷错误”结束。

标签: bash input char stdin


【解决方案1】:

我重新组织了您的代码,它可以在我的 Mac 上以 bash 运行。

#!/bin/bash
while read line || [[ -n "$line" ]];
do
    for var in $line 
    do
        echo $var
    done
done
exit 0

运行它

./test.sh
99116784 12 12 0 p
99116784
12
12
0
p
99116784 12 12 0
99116784
12
12
0

【讨论】: