Bra*_*mat 6 linux bash return-value echo
我想创建一个返回值的 Bash 文件。意思是,在脚本 script_a.bash 我有一定的计算,脚本 script_b.bash 会调用它。
script_a.bash:
return $1*5
Run Code Online (Sandbox Code Playgroud)
script_b.bash:
a_value=./script_a.bash 3
Run Code Online (Sandbox Code Playgroud)
当 a_value 为 15 时。
我读了一些关于它的内容,发现 bash 中没有“返回”,但是可以在使用“echo”的函数中完成类似的操作。我不想使用函数,我需要一个通用脚本在多个地方使用。
是否可以从不同的脚本返回值?谢谢!
使用命令替换捕获 的输出echo,并使用算术表达式计算结果:
script_a.bash:
echo $(( $1 * 5 ))
Run Code Online (Sandbox Code Playgroud)
script_b.bash
a_value=$( script_a.bash 3 )
Run Code Online (Sandbox Code Playgroud)
不要使用returnor exit,因为它们用于指示脚本的成功/失败,而不是输出。
像这样写你的脚本:
#!/bin/bash
echo $(( $1 * 5 ))
Run Code Online (Sandbox Code Playgroud)
访问值:
a_value=$(./script_a.bash 3)
Run Code Online (Sandbox Code Playgroud)
也就是说,$(command substitution)在消费代码中使用 a来捕获脚本的输出。