我很确定这是一个非常基本的问题,但是尝试了很长时间后我无法解决。
如何将函数的返回值存储在变量中?
我正在尝试执行iconv功能。我试过这个:
my_var=$(iconv -f UTF-8 -t UTF-8 < sample-feed-utf16.xml > con_sample-feed-utf16.xml)
函数执行,但返回值不存储在my_var
. 谁能帮我这个?
您正在将输出重定向到一个文件,因此不会有任何内容进入变量。
如果要存储退出代码,可以这样做:
iconv -f UTF-8 -t UTF-8 < sample-feed-utf16.xml > con_sample-feed-utf16.xml
my_var=$?
如果你这样做:
my_var=$(shell command)
然后 shell 命令的标准输出将存储在my_var
. 在您的示例中,由于您将 shell 命令的输出重定向到文件,因此没有输出要存储在my_var
.
此外,shell 命令会向 shell 返回一个整数值(退出代码)以指示执行未/成功。您可以存储此值:
iconv -f UTF-8 -t UTF-8 < sample-feed-utf16.xml > con_sample-feed-utf16.xml
my_var=$?
[[ my_var -eq 0 ]] && echo success