为什么我们一起使用echo和bc?

时间:2012-11-07 14:52:03

标签: bash shell

在Shell脚本(Linux / Ubuntu,Bash)中,为什么我们一起使用echo和bc命令?我是Shell脚本的新手,对管道有基本的了解。 我知道bc是一种单独的语言。以下陈述如何实际起作用(仅举例)?     echo 5+6 | bc

5 个答案:

答案 0 :(得分:4)

第一个命令(echo)将表达式“5 + 6”写入其标准输出。然后将其传送到bc的标准输入,从那里读取并进行评估。

这是因为bc不将表达式作为直接输入,它总是从文件和/或标准输入中读取。

答案 1 :(得分:3)

您可以将该程序组合用于另一组强大的操作,例如,您可以像这样将十六进制转换为二进制

echo "ibase=16; obase=2; A15" | bc

将打印:101000010101

至于回显和使用|运算符的过程,它只是使echo命令的输出成为bc程序的输入,你可以实现相同的使用例如:bc <<< "5 + 2"

bc不从命令行参数读取操作,而是从输入文件或交互式会话中读取它

这种有用组合的另一个例子是计算非常大的数量,例如:

echo "2^1024" | bc

有关<<< 的说明,如果程序从文件中读取其输入,则<<< 会将单行上的字符串作为输入文件传递给命令{{1}您可以将字符串转换为“文件”,然后将此“文件”传递给程序。

答案 2 :(得分:2)

此处不需要

回声,可以用以下文档替换:

bc <<%
5+6
%

或使用现代贝壳:

bc <<< 5+6

答案 3 :(得分:0)

bc 命令之前,我们可以看到非常简单的PIPE:

|

名称管道非常准确!像普通管道一样,这个管道正在将水从源头转移到目标管道。在计算机科学中,水被称为数据信息

像所有好的烟斗一样,它的两个结局都很特别。通过这些结束,我们可以将管道连接到其他管道,水龙头,接头等。

此管道的一端连接到 bc ,其结尾匹配。 Bc 是一个很大的软件,所以它有不同的管道连接点。也适用于这个简单的 | 管道。

另一方面, 5 + 6 不是任何软件。这是纯粹的数据/水。你可以想象,如果没有固定连接你的管道的一端纯净水会发生什么!缺水压力......

我们需要一些与该管道连接良好的软件。 Echo 是一个非常简单的应用程序,实际上什么也没做,就像体面的回声应该做的那样......但是它具有与简单管道匹配的基本和功能结束。

答案 4 :(得分:0)

一些文本格式

  echo -n "pi=" ; bc -l <<< "scale=10; 4*a(1)"

pi = 3.1415926532