【发布时间】:2016-03-16 23:03:24
【问题描述】:
我刚刚发现了有关将标准输出通过管道传输到 Perl 中的方法,我很惊讶您甚至可以这样做:
[user@folder] $ echo print 1/3 | perl
0.33333[user@folder] $
据我了解,您将打印命令放入 Perl,并使用 Perl 的代码进行浮点计算。请纠正我。但是,每次我这样做时,我都会得到一个没有换行符的答案。我到处搜索,只是无法对足够具体的术语进行关键字来创建答案。
这是我正在谈论的内容的链接,在海报 Thor 下: How do I use floating-point division in bash?
他给出了一个惊人的答案,但我无法评论或向用户发送消息,所以我决定在这里创建一个新问题。
我仍在试图弄清楚这是如何工作的, 变量也是如此。
$ three=3
$ echo $three/3 | perl
1[user@folder] $
额外问题:
一开始我只是想让 bash 在算术运算中输出浮点数。我不明白为什么bc 不能返回浮点数。据说可以,但它对我不起作用。
理想情况下:
$ echo 1/3 | bc
0
$
应该返回 .333 而不是 0。我正在委托一个工具 bc,而 bc 应该能够进行浮动。我只是不明白发生了什么。
【问题讨论】:
-
添加一个 \n 字符,例如:“echo print 1/3 \n”给我一些奇怪的错误,我没有资格破译
-
理想情况下,
bonus问题应该是一个新问题 -
我想节省空间并高效地不占用太多空间。这整个努力只是我试图找出更短的方法来打印计算的行而不必求助于:echo $number $number2 | awk '{print $1/$2}'
-
空间太大了哈。大声笑;)
-
如果您需要浮点数,那么您可能使用了错误的 shell。请考虑使用支持浮点的 Korn shell。
标签: bash perl terminal pipeline bc