shell Unix命令行中的'2>`是什么意思?[closed]

abithluo  于 2023-01-05  发布在  Shell
关注(0)|答案(3)|浏览(205)

**已关闭。**此问题不符合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,则输出在文件中,而不是变量中。知道这行代码到底在做什么吗?

xfyts7mz

xfyts7mz1#

文件描述符2表示标准错误。(其他特殊文件描述符包括用于标准输入的0和用于标准输出的1)。
2> /dev/null表示将标准错误重定向到/dev/null/dev/null是一种特殊设备,它会丢弃写入其中的所有内容。
总之,这行代码将命令ls $directory_/fallback_* 2> /dev/null的标准输出存储到变量scriptlist中,并丢弃标准错误。

lsmepo6l

lsmepo6l2#

知道“2”在这里到底是干什么的吗
这里,2是引用STDERR的文件描述符。
2> /dev/null意味着STDERR被重定向到空设备/dev/null
前面提到的整行代码将ls $directory_/fallback_*返回的输出(即STDOUT(忽略STDERR))存储到变量scriptlist中。

nzkunb0c

nzkunb0c3#

scriptlist=`ls $directory_/fallback_* 2> /dev/null`

由于您已将整行ls $directory_/fallback_* 2> /dev/null括在反勾号中,因此ls命令的输出存储在scriptlist变量中。
此外,对于redirecting2>stderr/dev/null的输出(无处)。

相关问题