scriptlist=`ls $directory_/fallback_* 2> /dev/null`
2>
该命令部分的具体目的是什么?我省略了它并运行了命令,它工作正常。
而且,如果 ls 的输出存储在 /dev/null 文件中,那么该变量scriptlist
将包含什么。当我执行代码时,输出在变量中,而文件中没有任何内容null
。如果我们删除2
,则输出在文件中而不是变量中。知道这行代码到底在做什么吗?
scriptlist=`ls $directory_/fallback_* 2> /dev/null`
2>
该命令部分的具体目的是什么?我省略了它并运行了命令,它工作正常。
而且,如果 ls 的输出存储在 /dev/null 文件中,那么该变量scriptlist
将包含什么。当我执行代码时,输出在变量中,而文件中没有任何内容null
。如果我们删除2
,则输出在文件中而不是变量中。知道这行代码到底在做什么吗?
文件描述符2
代表标准错误。(其他特殊文件描述符包括0
标准输入和1
标准输出)。
2> /dev/null
表示将标准错误重定向到/dev/null
. /dev/null
是一种特殊设备,会丢弃写入其中的所有内容。
综上所述,这行代码将 command 的标准输出存储ls $directory_/fallback_* 2> /dev/null
到变量scriptlist
中,标准错误被丢弃。
知道'2'到底在做什么
这2
是一个引用的文件描述符STDERR
。
2> /dev/null
意味着STDERR
被重定向到空设备/dev/null
。
您提到的完整行将返回的输出(即STDOUT
(忽略STDERR
))存储ls $directory_/fallback_*
到变量scriptlist
中。