我想创建一个返回值的Bash文件。 意思是,脚本script_a.bash我有一定的计算,脚本script_b.bash会调用它。
script_a.bash:
return $1*5
script_b.bash:
a_value=./script_a.bash 3
当a_value为15时。
我对此有所了解,并发现没有"返回"在bash中,但是这样的事情可以在使用" echo"的函数中完成。我不想使用函数,我需要在多个地方使用通用脚本。
是否可以从其他脚本返回值?谢谢!
答案 0 :(得分:4)
使用命令替换捕获echo
的输出,并使用算术表达式计算结果:
script_a.bash:
echo $(( $1 * 5 ))
script_b.bash
a_value=$( script_a.bash 3 )
答案 1 :(得分:2)
请勿使用return
或exit
,因为他们指的是脚本的成功/失败,而不是输出。
像这样编写脚本:
#!/bin/bash
echo $(( $1 * 5 ))
访问值:
a_value=$(./script_a.bash 3)
也就是说,在使用代码中使用$(command substitution)
来捕获脚本的输出。
答案 2 :(得分:0)
您可以使用exit rc;,但请记住,* nix 0中的常规结果是成功的结果,任何正值都是错误代码。 是否可以选择
echo <your_value>;
并将输出重定向到链中调用的下一个二进制文件?