0

これは非常に基本的な質問だと確信していますが、長い間試しても解決できません。

関数の戻り値を変数に格納する方法は?

iconv関数を実行しようとしています。そして、私はこれを試しました:

my_var=$(iconv -f UTF-8 -t UTF-8 < sample-feed-utf16.xml > con_sample-feed-utf16.xml)

関数は実行されますが、戻り値は に格納されませんmy_var。誰でもこれで私を助けることができますか?

4

2 に答える 2

4

出力をファイルにリダイレクトしているため、変数には何も入りません。

終了コードを保存する場合は、次のようにします。

iconv -f UTF-8 -t UTF-8 < sample-feed-utf16.xml > con_sample-feed-utf16.xml
my_var=$?
于 2012-07-23T04:01:14.643 に答える
3

もしあなたがそうするなら:

my_var=$(shell command)

すると、シェルコマンドの標準出力が に格納されmy_varます。あなたの例では、シェルコマンドの出力をファイルにリダイレクトするため、に保存する出力は残っていませんmy_var

また、シェル コマンドは整数値 (終了コード) をシェルに返し、実行の失敗/成功を示します。この値を保存できます。

iconv -f UTF-8 -t UTF-8 < sample-feed-utf16.xml > con_sample-feed-utf16.xml
my_var=$?
[[ my_var -eq 0 ]] && echo success
于 2012-07-23T04:05:31.450 に答える