嵌套函数调用Bash
发布时间:2020-12-16 01:27:51 所属栏目:安全 来源:网络整理
导读:现在,我正在尝试在另一个函数调用中嵌套一个bash函数调用(以便将一个函数的输出用作另一个函数的输入).是否有可能在bash中嵌套函数调用,我正试图在这里做? 首先,我定义了这两个函数: returnSomething(){ return 5;}funky (){ echo $1;} 然后,我尝试使用一
现在,我正在尝试在另一个函数调用中嵌套一个bash函数调用(以便将一个函数的输出用作另一个函数的输入).是否有可能在bash中嵌套函数调用,我正试图在这里做?
首先,我定义了这两个函数: returnSomething() { return 5; } funky () { echo $1; } 然后,我尝试使用一个函数的输出作为另一个函数的输入. funky $returnSomething; #Now I'm trying to use the output of returnSomething as the input for funky.
你有两个问题.一个是return不设置函数的输出,而是设置其退出状态(成功为零,失败为非零).例如,echo foo将输出foo(加上换行符),但退出状态为0.要控制输出,请使用echo或printf:
function returnSomething () # should actually be outputSomething { echo 5 } 另一个问题是$returnSomething(或${returnSomething})给出了一个名为returnSomething的变量的值: x=5 # sets the variable x echo "$x" # outputs 5 要捕获命令的输出,请使用符号$(…)(或“`,但后者更棘手).所以: function funky () { echo "$( "$1" )" } funky returnSomething # prints 5 要不就: function funky () { "$1" # runs argument as a command } funky returnSomething # prints 5 相反,如果您确实要捕获命令的退出状态,请使用特殊的shell参数? (完成后设置为命令的退出状态): function returnSomething () { return 5 } function funky () { "$1" # runs argument as a command echo "$?" # prints its exit status } funky returnSomething # prints 5 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |