我很确定这是一个非常基本的问题,但是经过很长一段时间后我无法解决这个问题。
如何在变量中存储函数的返回值?
我正在尝试执行iconv功能。我试过这个:
my_var = $(iconv -f UTF-8 -t UTF-8< sample-feed-utf16.xml> con_sample-feed-utf16.xml)
该函数执行,但返回值未存储在my_var
中。任何人都可以帮我这个吗?
答案 0 :(得分:4)
您正在将输出重定向到文件,因此不会进入变量。
如果您想存储退出代码,可以这样做:
iconv -f UTF-8 -t UTF-8 < sample-feed-utf16.xml > con_sample-feed-utf16.xml
my_var=$?
答案 1 :(得分:3)
如果你这样做:
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