scriptlist=`ls $directory_/fallback_* 2> /dev/null`
2>
部分命令的目的究竟是什么? 我省略了它并运行命令,它工作正常。2>在Unix命令行中的含义是什么?
而且,如果ls的输出存储在/ dev/null文件中,那么变量scriptlist
将包含什么内容。 当我执行代码时,输出在变量中,文件null
中没有任何文件。如果我们删除2
,那么输出是在文件而不是变量。 不知道这行代码究竟在干什么?
scriptlist=`ls $directory_/fallback_* 2> /dev/null`
2>
部分命令的目的究竟是什么? 我省略了它并运行命令,它工作正常。2>在Unix命令行中的含义是什么?
而且,如果ls的输出存储在/ dev/null文件中,那么变量scriptlist
将包含什么内容。 当我执行代码时,输出在变量中,文件null
中没有任何文件。如果我们删除2
,那么输出是在文件而不是变量。 不知道这行代码究竟在干什么?
任何想法究竟是什么“2”是做在这里
这里2
是一个文件描述符引用STDERR
。
2> /dev/null
意味着STDERR
被重定向到空设备/dev/null
。
您提到的完整行将STDOUT
(忽略STDERR
)的输出存储到变量scriptlist
中,并将其返回ls $directory_/fallback_*
。
文件描述符2
表示标准错误。 (其他特殊文件描述符包括用于标准输入的0
和用于标准输出的1
)。
2> /dev/null
表示将标准错误重定向到/dev/null
。 /dev/null
是一种特殊的设备,会丢弃写入它的所有内容。
放在一起,这行代码存储命令ls $directory_/fallback_* 2> /dev/null
INT变量scriptlist
(和标准错误被丢弃)的标准输出。
scriptlist=`ls $directory_/fallback_* 2> /dev/null`
正如您已经封闭在反引号整行ls $directory_/fallback_* 2> /dev/null
, 的ls
命令的输出被存储在scriptlist
变量。
此外,2>
为redirecting所述的stderr
输出到/dev/null
(
无处
)。
'$ {script} $ * >> $ logfile 2>&1 dev/null' 这里'2>&1 <'代表什么? 回答:[在shell中,什么是“2>&1”?](http://stackoverflow.com/questions/818255/in-the-shell-what-is-21) – Smith