2017-06-27 55 views
0

的返回值,雖然你可以內嵌一個程序的輸出參數語法內聯調用

$ echo $(ls) 
cpp python bash 

或作爲臨時文件

$ echo <(ls) 
/proc/self/fd/63 

我不知道你如何內嵌有返回值類似的語法,以便它回顯ls的返回值,它的工作原理是這樣的:

$ ls 
$ echo $? 
0 
+0

內嵌意味着要抑制或重定向的返回值? – Azeem

+0

'LS>的/ dev/null的; echo $?'?我不知道你正試圖在這裏實現什麼? –

+0

@Azeem是,該方案''ls''應執行和返回值,這是在大多數情況下0,應該被重定向到回聲作爲一個正常的參數 – cmdLP

回答

1
ls_retval=$(ls >/dev/null 2>&1; echo "$?") 

如果你想封裝是:

# define a function... 
retval_of() { "[email protected]" >/dev/null 2>&1; echo "$?"; } 

# and use it 
ls_retval=$(retval_of ls) 

至於「有類似的語法」,雖然 - 殼有它的語法;不存在「RETVAL取代」(如bash的4.4,或POSIX SH的如在POSIX問題7標準化的)。