从 bash 脚本返回值

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”的函数中完成类似的操作。我不想使用函数,我需要一个通用脚本在多个地方使用。

是否可以从不同的脚本返回值?谢谢!

cho*_*oba 7

使用命令替换捕获 的输出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)


Tom*_*ech 6

不要使用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来捕获脚本的输出。