use*_*135 2 syntax bash shell function
我正在尝试调用 bash 函数并将函数返回的输出分配给变量。但是,当我运行下面的代码时,出现以下错误,并且我不明白我可能做错了什么:
test.sh: return: line 7: Illegal number: aGVsbG93b3JsZA==
helloworld
convertfrombase64 () {
B64DATA=$1
echo "$B64DATA" | base64 -d
return "$B64DATA"
}
PLAINTEXT=$(convertfrombase64 "aGVsbG93b3JsZA==")
echo "$PLAINTEXT"
Run Code Online (Sandbox Code Playgroud)
您不能从函数返回字符串。Bash 函数的返回值遵循与退出代码相同的规则 - 请参阅相关帖子。
您已经正确使用了该函数的输出。可能您想返回退出代码base64来指示状态,如下所示:
convertfrombase64 () {
B64DATA=$1
echo "$B64DATA" | base64 -d
return $?
}
Run Code Online (Sandbox Code Playgroud)
根据评论中得到的很好的建议,上面的函数可以更好地写成:
convertfrombase64() {
printf '%s' "$1" | base64 -d
}
Run Code Online (Sandbox Code Playgroud)
请参阅这篇文章了解更多详细信息:
| 归档时间: |
|
| 查看次数: |
2686 次 |
| 最近记录: |