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