shell脚本执行curl命令提示return: command not found错误如何解决
问题原因
你遇到的报错是 Shell 变量赋值的语法错误导致的,和 curl 命令本身的写法无关。
Shell 中给变量赋值时,等号两侧不允许出现任何空格,你写的return = $(curl ...)中,等号左右都有空格,Shell 会将开头的return识别为要执行的外部命令,而系统中没有名为return的独立可执行命令,因此抛出return: command not found的错误。
修正方案
- 删掉变量赋值时等号两侧的所有空格,符合 Shell 变量赋值语法
- 建议不要使用
return作为变量名:return是 Shell 内置关键字,专门用于函数返回执行状态,用作普通变量名容易引发后续潜在的语法冲突,可以替换为语义更明确的变量名如resp_data
修正后的完整代码如下:
resp_data=$(curl -s --location --request GET --url 'https://testurl.mywebsite.com/api/accts?Id=trst_id&var=test_var' --header 'type: app/test') echo "data is: ${resp_data}"
如果你必须使用return作为变量名,直接删掉等号两侧空格即可,写法为return=$(curl ...),但仍建议优先替换变量名避免冲突。
内容的提问来源于stack exchange,提问作者Padfoot123
相关产品推荐
相关产品推荐

