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