**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题有关,您可以留下评论,说明在何处可以回答此问题。
1年前关闭。
Improve this question
scriptlist=`ls $directory_/fallback_* 2> /dev/null`
命令的2>
部分的确切用途是什么?我省略了它并运行了命令,它只是工作正常。
而且,如果ls的输出存储在/dev/null文件中,变量scriptlist
将包含什么?当我执行代码时,输出在变量中,而文件null
中没有任何内容。如果我们删除2
,则输出在文件中,而不是变量中。知道这行代码到底在做什么吗?
3条答案
按热度按时间xfyts7mz1#
文件描述符
2
表示标准错误。(其他特殊文件描述符包括用于标准输入的0
和用于标准输出的1
)。2> /dev/null
表示将标准错误重定向到/dev/null
。/dev/null
是一种特殊设备,它会丢弃写入其中的所有内容。总之,这行代码将命令
ls $directory_/fallback_* 2> /dev/null
的标准输出存储到变量scriptlist
中,并丢弃标准错误。lsmepo6l2#
知道“2”在这里到底是干什么的吗
这里,
2
是引用STDERR
的文件描述符。2> /dev/null
意味着STDERR
被重定向到空设备/dev/null
。前面提到的整行代码将
ls $directory_/fallback_*
返回的输出(即STDOUT
(忽略STDERR
))存储到变量scriptlist
中。nzkunb0c3#
由于您已将整行
ls $directory_/fallback_* 2> /dev/null
括在反勾号中,因此ls
命令的输出存储在scriptlist
变量中。此外,对于redirecting,
2>
是stderr
到/dev/null
的输出(无处)。