我正在尝试计算欧拉的麻木。但我在尝试显示结果时遇到问题。这就是我所拥有的:
#Using a switch an case
"Euler's Number")
szAnswer=$(zenity --info --text "Enter a number")
result = "(1+1/$szAnswer)^$szAnswer" | bc -l
zenity --info --text "Euler's Numb: $result"
我可以输入一个数字和所有内容,但是在给我输出结果时它只是保持空白。欢迎任何帮助。
问题是
result = "(1+1/$szAnswer)^$szAnswer" | bc -l
线。上面写着:result
带参数的命令=
和"(1+1/$szAnswer)^$szAnswer"
stdout
流连result
接到bc
命令的stdin
流可能您想知道为什么
result
在这种情况下是命令。这是因为 shell 脚本中的变量赋值是在没有空格分隔变量名和赋值的情况下进行的。您还想发送"(1+1/$szAnswer)^$szAnswer"
命令,因此您需要能够写入的stdin
东西bc -l
stdout
应该做的是
现在你有
result
变量被分配到echo "(1+1/${szAnswer})^${szAnswer}" | bc -l
管道的输出。该$(...)
结构称为命令替换,通常在必须重用命令的输出来代替命令本身时使用。