内联调用返回值的语法

时间:2017-06-27 15:38:16

标签: bash

虽然您可以将程序的输出内联作为参数

$ echo $(ls)
cpp python bash

或作为临时文件

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

我想知道如何使用类似的语法内联返回值,以便它回显ls的返回值,它的工作原理如下:

$ ls
$ echo $?
0

1 个答案:

答案 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中标准化)。