我非常確定這是一個非常基本的問題,但我很長時間後無法解決它。如何將函數的返回值存儲在變量中?
如何將函數的返回值存儲在變量中?
我正在嘗試執行iconv函數。和我試圖與此:
my_var = $(的iconv -f UTF-8 -t UTF-8 <樣品送進utf16.xml> con_sample送進utf16.xml)
的函數執行,但返回值不存儲在my_var
中。誰能幫我這個?
我非常確定這是一個非常基本的問題,但我很長時間後無法解決它。如何將函數的返回值存儲在變量中?
如何將函數的返回值存儲在變量中?
我正在嘗試執行iconv函數。和我試圖與此:
my_var = $(的iconv -f UTF-8 -t UTF-8 <樣品送進utf16.xml> con_sample送進utf16.xml)
的函數執行,但返回值不存儲在my_var
中。誰能幫我這個?
您正在將輸出重定向到一個文件,因此沒有任何內容會進入該變量。
如果你想存儲的退出代碼,你可以做這樣的:
iconv -f UTF-8 -t UTF-8 < sample-feed-utf16.xml > con_sample-feed-utf16.xml
my_var=$?
非常感謝,拯救了我的一天! (其實晚上) – Bhushan 2012-07-23 04:20:39
如果你這樣做:
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
'iconv'不是函數,它是可執行文件。你的意思是「退貨價值」 - 流程的標準出/錯,還是退出狀態? – ephemient 2012-07-23 04:00:26
你想輸出到變量,或退出代碼? – 2012-07-23 04:01:56
@ephemient:我試圖獲得退出代碼。 – Bhushan 2012-07-23 04:21:07