【发布时间】:2015-03-24 14:43:50
【问题描述】:
我是 Bourne shell 的新手,对阅读多行/包括换行符的标准输入感到好奇。
IN:例如,如果有人输入
1
3 #only ignore whitespace
5.3 #ignore floating point number all together
我可以让它读取它们并在不同的行中回显它们。我的目标也是忽略浮点数(仅限整数!)并忽略空格。
OUT:我的理想输出将计算平均值(上面输入的示例)
1
2
到目前为止,我可以读取标准输入并将其回显,如果它在一行上并且限制为硬编码值(应该是每当用户使用 Ctrl-D 停止时)。
#! /bin/sh
read a b c
echo "$a";
echo "$b";
echo "$c";
【问题讨论】:
-
它是针对你使用 sh 卡住的作业吗?因为 bash 是 sh 的超集,并且有一些非常方便的字符串操作符和更好的读取功能。我认识的大多数公司/工程师不久前都切换到 bash 来编写 UNIX 上的大部分基本 shell 脚本。它是 Linux 登录的默认 shell。甚至是 Solaris。
-
@1sand0s 是的,这次别无选择了!我更喜欢使用 bash,虽然我不喜欢它,但我更喜欢 tcsh。