在下面的bash脚本中,我不明白这意味着什么:
function kill_process()
{
kill -9 $(lsof -i:$1 -t) 2> /dev/null
}
我可以看到它将输出重定向到空设备但是2是什么意思?
答案 0 :(得分:4)
Bash中的N>
语法意味着将文件描述符重定向到其他位置。 2
是stderr
的文件描述符,此示例将其重定向到/dev/null
。
这意味着简单来说:忽略命令的错误输出。例如,如果kill
无法停止某个进程,因为它不存在,或者因为当前用户没有这样做的权限,它会在stderr
上打印邮件。通过将stderr
重定向到/dev/null
,您可以有效地抑制这些消息。
答案 1 :(得分:4)
>
前面的数字告诉shell哪个文件描述符重定向到文件中。如果你关闭数字,它默认为1 - 这与标准输出, stdout 相同,简称为 stdout ,大多数命令都将其输出写入。但是,终端中的程序默认情况下实际上有两个输出通道,另一个是标准错误。 stderr 的目的是允许将错误发送到终端,即使标准输出被重定向到文件或管道中也是如此;它们都默认进入终端。但是你可以根据需要重定向stderr,这就是这段代码正在做的事情,因为stderr的文件描述符号是2。
答案 2 :(得分:-1)
我认为是对STDERR的重定向。 所有错误都被重定向到/ dev / null