これは非常に基本的な質問だと確信していますが、長い間試しても解決できません。
関数の戻り値を変数に格納する方法は?
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)
すると、シェルコマンドの標準出力が に格納され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