gpt4 book ai didi

linux - 在另一个函数中调用一个函数

转载 作者:太空狗 更新时间:2023-10-29 11:33:37 26 4
gpt4 key购买 nike

我试图从另一个 bash 函数中调用一个 bash 函数,但它没有按预期工作:

#/bin/bash
function func1(){
echo "func1 : arg = ${1}"
return 1
}
function func2(){
echo "func2 : arg = ${1}"
local var=func1 "${1}"
echo "func2 : value = $var"
}
func2 "xyz"

当前输出是:

Current output :
func2 : arg = xyz
func2 : value = func1

问题:如何修改上面的程序以获得如下输出? :

Desired output : 
func2 : arg = xyz
func1 : arg = xyz
func2 : value = 1

最佳答案

Bash 中的函数与许多其他语言中的函数的工作方式不同,它们只能返回 0 到 255 之间的整数。这是在函数调用后使用 $? 获取的。如果你想得到一些其他的值,例如一个字符串,在子 shell 中调用它:

local var=$(func1 "${1}")

将从函数中获取标准输出(来自 echo 语句)到 $var 中。

顺便说一句,函数语法是:

function func1 { ... }

func1() { ... }

关于linux - 在另一个函数中调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13233116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com