bash – 将stdout传递给Perl时,如何让它打印换行符?
我刚刚发现将stdout传输到Perl中,我很惊讶你甚至可以这样做:
[user@folder] $echo print 1/3 | perl 0.33333[user@folder] $ 根据我的理解,你将print命令放入Perl,并使用Perl的代码进行浮点计算.请指正.但是,每次我这样做,我都会得到一个没有换行符的答案.我到处搜索,我只是不能将这些术语的关键字足以创建答案. 这是我正在谈论的内容的链接,在海报Thor下: 他给出了一个惊人的答案,但我无法评论或给用户发消息,所以我决定在这里创建一个新问题. 我仍然试图围绕这是如何工作的, $three=3 $echo $three/3 | perl 1[user@folder] $ 奖金问题: 理想的情况是: $echo 1/3 | bc 0 $ 应该返回.333而不是0.我正在委托一个工具,bc和bc应该能够做浮动.我只是不明白发生了什么. 解决方法
Perl的
使用-l选项(参见 $echo print 1/3 | perl -l 0.333333333333333 $ 它会自动添加换行符.文件说:
贝壳 shell扩展了shell变量,所以不应该对此感到惊讶: $three=3 $echo print $three/3 | perl -l 1 $echo print $three/3 print 3/3 $ 公元前 对于你的奖金问题: $echo 1/3 | bc -l .33333333333333333333 $ 这是纯粹的侥幸,选项是-l.这一次,它意味着“加载库”,并巧合地将比例设置为20,这就是显示20个十进制数字的原因. 顺便说一句,快速获取π到大量小数位的方法是: $echo '4*a(1)' | bc -l 3.14159265358979323844 $echo 'scale=40; 4*a(1)' | bc -l 3.1415926535897932384626433832795028841968 $ 通过-l选项从库加载的函数a用于’arctan’.我观察到,谷歌搜索“pi 40位数”中至少有3个来源表明它应该是:3.1415926535 8979323846 2643383279 5028841971 – 这表明在bc的第40位数字中存在3个计数的错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- unix – SIGKILL init进程(PID 1)
- 不要在几个bash脚本之间显示pushd/popd堆栈(quie
- bootstrap-面板--彩色面板
- twitter-bootstrap – 如何使Twitter预先确定完全
- Ubuntu 允许其他电脑/外部电脑访问redis
- angularjs – AngularFire – 删除单个项目
- 是否有Scala操作符与Haskell的$(美元符号)相似?
- angularjs – Angular ui-router:如何在解析子解
- Shell、内外部命令――Linux基本命令(2)
- MyGeneration学习笔记(9) :在WebService使用dOO