虽然您可以将程序的输出内联作为参数
$ echo $(ls)
cpp python bash
或作为临时文件
$ echo <(ls)
/proc/self/fd/63
我想知道如何使用类似的语法内联返回值,以便它回显ls
的返回值,它的工作原理如下:
$ ls
$ echo $?
0
答案 0 :(得分:1)
ls_retval=$(ls >/dev/null 2>&1; echo "$?")
如果你想封装它:
# define a function...
retval_of() { "$@" >/dev/null 2>&1; echo "$?"; }
# and use it
ls_retval=$(retval_of ls)
对于&#34;具有相似的语法&#34;,但是 - shell具有它具有的语法;它不存在&#34; retval替换&#34; (截至bash 4.4,或POSIX sh在POSIX Issue 7中标准化)。