linux shell 重定向中的 & 符号
写一个简单的 demo 示例
#include <stdio.h> int main()
{
fprintf(stdout, "stdout output\n");
fprintf(stderr, "stderr output\n"); return ;
}
$gcc test.c -o test
$./test > /dev/null
stderr output
$./test > /dev/null 2>&1
$
对于重定向符号,可以这么理解,简单的
command > /dev/null
此时 > 的前边是省略了 1(标准输出) 的。
2 > &1
意思是将 2(标准错误) 中的数据也重定向到 1(标准输出) 中。
【拓展】
重定向有先后顺序,还是以上边的test示例做实验
$./test 2>&1 1>/dev/null | grep out
stderr output
$./test 1>/dev/null 2>&1 | grep out
stderr output
如示例所示,第一次运行时,依然将输出到标准输出中。
可以这么理解:
文件描述符 输出到的设备
0 /dev/pts/22(ubuntu路径,不同telminal不同)
1 /dev/pts/22
2 /dev/pts/22
...
所谓重定向的意思就是替换后边的输出设备。
2>&1 1>/dev/null 得到的结果为:
文件描述符 输出到的设备
0 /dev/pts/22
1 /dev/null
2 /dev/pts/22
...
1>/dev/null 2>&1 得到的结果为:
文件描述符 输出到的设备
0 /dev/pts/22
1 /dev/null
2 /dev/null
...
linux shell 重定向中的 & 符号的更多相关文章
- Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||
https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...
- Linux shell命令中expr
在Linux shell命令中expr虽然不是很起眼,但是它的作用是非常大的!到目前为止,我个人看来最大的作用就是两个——四则运算和字符串的操作. 先说四则运算,在Shell中四则运算不能简简单单的加 ...
- 学习Linux shell脚本中连接字符串的方法
这篇文章主要介绍了Linux shell脚本中连接字符串的方法,如果想要在变量后面添加一个字符,可以用一下方法: 代码如下: $value1=home $value2=${value1}"= ...
- Linux shell脚本中shift
Linux shell脚本中shift的用法说明 shift命令用于对参数的移动(左移),通常用于在不知道传入参数个数的情况下依次遍历每个参数然后进行相应处理(常见于Linux中各种程序的启动脚本). ...
- Linux shell脚本中shift的用法说明【转】
本文转载自:http://blog.csdn.net/zhu_xun/article/details/24796235 Linux shell脚本中shift的用法说明 shift命令用于对参数的移动 ...
- linux shell脚本中的延时
linux shell脚本中的延时 还是使用 sleep 或usleep函数. 详细如下: .sleep : 默认为秒. sleep 1s 表示延迟一秒 sleep 1m 表示延迟一分钟 ...
- Linux Shell 重定向与管道【转帖】
by 程默 在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以 ...
- Linux shell 重定向学习笔记
在了解重定向之前,我们先来看看linux 的文件描述符. linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读 ...
- Linux Shell 几个特殊符号命令 & 、&& 、 ||
& 放在启动参数后面表示设置此进程为后台进程 默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动 ...
随机推荐
- tomcat 下配置 可 调试
set JAVA_OPTS=-Djute.maxbuffer=2048000 set console_log=true 起始行配置 rem Ensure that any user defined C ...
- Redis服务器开启远程访问
重启 ps aux|grep redis root 32684 0.0 0.0 48452 6944 ? Ssl 21:27 0:00 ./redis-server *:6379 kill了这个进程 ...
- php输出textarea数据(入库没有处理的)
str_replace("\r\n","<br />",$xmactivity['xmdetail']) 导出excel换行方法 str_repla ...
- html5新增标签做基本布局
结构标记 ***** 做布局 1.<header>元素 <header></header> ==> <div id="header" ...
- 为什么要用MarkDown?
[为什么要用MarkDown?] 大部分作家用 Word 或 Pages 写作,过去的文档也大都以 .doc, .docx 格式或是 Pages 格式储存.还有人为了保证文稿发给谁都能正常打开,会用 ...
- html自定义弹框
一.要实现的功能 1.弹框弹出时有遮罩 2.弹框内的文字过多时右侧有滚动条 3.根据执行结果变更弹框title的样式 二.具体实现 思路:定义一个有宽高的div,默认隐藏,当要显示时,设置为dis ...
- 二维数组中的查找(python)
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- CentOS 查看进程状态
Linux中ps与top命令 ============================================================================ 这两个命令都 ...
- Vue之常用语法
变量的定义: var定义的变量:只有全局作用域和函数作用域.有变量提升,先打印后定义变量不会报错,打印结果为undefined let定义的变量:没有变量提升 ——>有局 ...
- 抛弃WebService,在.NET4中用 jQuery 调用 WCF
在我们之前的开发中,对于ajax程序,都是通过jQuery调用标记为[System.Web.Script.Services.ScriptService]的WebService,然后在WebServic ...