Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash C型任意精度计算器传递变量_Bash - Fatal编程技术网

Bash C型任意精度计算器传递变量

Bash C型任意精度计算器传递变量,bash,Bash,我对calc有问题 我需要从命令行或脚本向calc传递一些变量;这些变量是复数,比如a=2+5i,b=1-i 我的目标是在bash脚本中包含这个过程;我做过类似的测试 $ calc(){ awk "BEGIN { print "$*" }" ;} $ a=7; b=3; $ calc $a/$b 2.33333 但不幸的是,如果a或b是复杂的,我的代码就会失败,给出错误且不可信的结果 如何解决此问题?只需将calc函数中的awk更改为其python等效项: $ calc () { pytho

我对calc有问题

我需要从命令行或脚本向calc传递一些变量;这些变量是复数,比如a=2+5i,b=1-i

我的目标是在bash脚本中包含这个过程;我做过类似的测试

$ calc(){ awk "BEGIN { print "$*" }"  ;}
$ a=7; b=3;
$ calc $a/$b
2.33333
但不幸的是,如果a或b是复杂的,我的代码就会失败,给出错误且不可信的结果

如何解决此问题?

只需将calc函数中的awk更改为其python等效项:

$ calc () { python -c "print ($*)"; }
$ calc 2 + 3
5
$ calc "(3 + 4j) * 2"
(6+8j)
$ calc "(2 + 5j) / (1 - 2j)"
(-1.6+1.8j)
如果您想/需要使用i而不是j,请将函数更改为
calc{python-cprint${*/[Ii]/j};

AWK没有对复数的内置支持。最好使用python之类的语言来实现这一点。