在经常写shell脚本时,经常看到:>/dev/null 2>&1
如,
netstat -nlp | grep 9780 | awk '{print $7}' | awk -F "/" '{print $1}' 1>/dev/null 2>/dev/null
解释:
- > 代表重定向到哪里,例如:echo "test" > /home/test.txt
- 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
- 2 表示stderr标准错误
- & 表示等同于的意思,2>&1,表示2的输出重定向等同于1
那么,上面语句的意思是:
- 1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
- 2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
总结:
command < filename 把标准输入重定向到filename文件中 command 0< filename 把标准输入重定向到filename文件中 command > filename 把标准输出重定向到filename文件中(覆盖) command 1> fielname 把标准输出重定向到filename文件中(覆盖) command >> filename 把标准输出重定向到filename文件中(追加) command 1>> filename 把标准输出重定向到filename文件中(追加) command 2> filename 把标准错误重定向到filename文件中(覆盖) command 2>> filename 把标准输出重定向到filename文件中(追加) command > filename 2>&1 把标准输出和标准错误一起重定向到filename文件中(覆盖) command >> filename 2>&1 把标准输出和标准错误一起重定向到filename文件中(追加) command < filename >filename2 把标准输入重定向到filename文件中,把标准输出重定向 到filename2文件中 command 0< filename 1> filename2 把标准输入重定向到filename文件中,把标准输出重定向 到filename2文件中
重定向的使用有如下规律:
1)标准输入0、输出1、错误2需要分别重定向,一个重定向只能改变它们中的一个。 2)标准输入0和标准输出1可以省略。(当其出现重定向符号左侧时) 3)文件描述符在重定向符号左侧时直接写即可,在右侧时前面加&。 4)文件描述符与重定向符号之间不能有空格!
相关推荐
在Shell脚本编程中,`>/dev/null 2>&1` 是一个常见的命令行操作,它的目的是将命令的输出(包括标准输出和标准错误)都重定向到一个特殊的地方——`/dev/null`,通常被称为“黑洞”或者“空设备文件”。这个文件的...
然而,如果你误将命令写成`2>&1 >/dev/null`,那么标准错误会被重定向到标准输出,而标准输出再被重定向到`/dev/null`。这意味着所有错误信息会被丢弃,而正常的输出也会被丢弃,这可能导致你在调试脚本时错过重要的...
shell中可能经常能看到:>/dev/null 2>&1 命令的结果可以通过%>的形式来定义输出 /dev/null 代表空设备文件 > 代表重定向到哪里,例如:echo “123” > /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以”>...
在 `nohup /mnt/Nand3/H2000G >/dev/null 2>&1 &` 这个例子中,`>/dev/null` 表示将标准输出(文件描述符 1)重定向到 `/dev/null`,这是一个特殊的设备文件,任何写入它的数据都会被丢弃,相当于“黑洞”。`2>&1` ...
3. 隐藏命令的错误输出:`command 2>/dev/null`,这会将错误信息丢弃,不显示在终端。 掌握文件描述符的使用,对于编写复杂的Bash脚本和高效管理Linux系统至关重要。通过熟练运用文件描述符,你可以更灵活地控制...
同时,也可以用来禁止标准错误,如`rm $badname 2> /dev/null`,这样即使删除的文件不存在,也不会显示错误信息。如果想同时忽略标准输出和错误输出,可以使用`2>/dev/null >/dev/null`。 此外,`/dev/null`还可以...
linux shell 中”2>&1″的含义 脚本: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_...
- `2>&1` 表示将错误输出(2)重定向到标准输出(1),这样错误信息也会被输出到屏幕或指定的文件。 - `&> filename` 是一个简化的形式,它同时将标准输出和错误输出都重定向到`filename`。 4. **输出打印不显示*...
- `&>/dev/null`: 将ping命令的所有标准输出和错误输出重定向到`/dev/null`,这样就不会在屏幕上显示任何不必要的信息。 - `if ... then ... else ... fi`: 根据ping命令的返回值判断目标IP是否可达。如果目标主机...
例如,`nohup ./execute.sh > /home/xxx/log.log 2>&1 &`会将标准输出和标准错误都重定向到`/home/xxx/log.log`文件中,而不是默认的`nohup.out`。 针对日志文件过大问题,可以采取以下策略: 1. 定期分割日志:...
8. **重定向标准错误到标准输出**:`2>&1`表示将错误输出与标准输出合并。例如,`command 2>&1 > all_output.txt`将所有输出(包括错误)都写入all_output.txt。 9. **历史记录重定向**:在shell脚本中,`exec`命令...
例如,mysh > /dev/null 2>&1 就可以忽略标准输出和错误输出。 在 IO 重定向中,我们需要了解基本概念,包括 FD(File Descriptor)、STDIN、STDOUT 和 STDERR 等。FD 是一个文件描述符,shell 的 FD 通常为 10个,...
在某些情况下,我们可能希望丢弃命令的错误输出,如`grep delegate /etc/* 2>/dev/null`,这会过滤掉grep因权限问题无法打开文件时的错误提示,让屏幕只显示匹配的搜索结果。 了解并熟练运用输入输出重定向和管道...
- `&>/dev/null`:将标准输出和标准错误输出都重定向到黑洞。 14. 用户配置文件: - `~/.bashrc`:用户每次打开新终端时加载,只对当前用户有效,常用于定义变量。 15. 系统配置文件: - `/etc/profile`:所有...
- `2>&1 >/dev/null`:先将标准错误输出(2)重定向到标准输出(1),然后再将标准输出重定向到`/dev/null`。这样,所有输出,包括错误,都不会显示在屏幕上,而是被丢弃。 4. **逻辑运算符`&&`和`||`** - `&&`:...
在Shell脚本中,`echo`命令用于打印信息到标准输出,`>`用于重定向输出,`>>`用于追加输出。转义字符`\`用来防止特殊字符被Shell解释。例如,如果你想在脚本中使用`#`作为文本而不是注释,你需要在前面加上反斜杠,...
在脚本中,`/dev/null > files`清空文件,`files > /dev/null`将文件内容丢弃。 4. **优化Shell脚本**: - `test_shell_2`脚本增加了权限检查,只有当用户以root身份运行时,脚本才会继续执行,否则显示错误信息并...
- 示例:`find / -name test > /dev/null 2>&1` 的含义是搜索根目录下的名为 "test" 的文件,并将输出重定向到空设备文件 `/dev/null`,同时将错误输出也重定向到同一位置。 #### 五、Shell 变量管理 - **变量...
而`2>&1`将标准错误(错误输出)重定向到标准输出的同一位置,即也重定向到`/dev/null`,这样所有输出(包括错误信息)都不会显示在屏幕上。 在Shell编程中,`if`语句用于条件判断。`if [ condition ]; then`结构...