Bash Shell 之stdin,stdout, stderr以及管道
2014-07-15 15:39
525 查看
名词:过滤器filter
Shell的一大特点是:一个命令的输出可以作为另一个命令的输入,而这个命令的输出又会传递至另一个命令
$ cmd1 | cmd2 | cmd3
这些命令就称作“filter”, 使用的是“|”来连接filter,(标准输入和标准输出在什么时候起的作用呢?)
如:$ls -l | cat -n > out.txt
过程:ls -l的输出通过“|”传给cat -n, cat -n 是怎么接受这些数据的呢?
cat -n通过标准输入(stdin)接收到输入的内容!加上行号后将输出重定向到文件out.txt
注:stdout中的内容,不做处理的话,直接打印到屏幕中
cmd从stdin中接受数据,cmd的输出(即命令结果)在stdout中
还有两种取命令输出的方法:
1, 命令结果存放到某个变量中
cmd_output=$(ls | cat -n)
echo $cmd_output
2, 用“反引号”把命令输出存到变量中
cmd_output=`ls | cat -n`
echo $cmd_output
注:以上两种方式(使用子shell,反引用)将命令的输入读入一个变量中,可以将它放入双引号中,以保留空格和换行符(\n)
cmd_output="$(ls | cat -n)"
echo $cmd_output
Shell的一大特点是:一个命令的输出可以作为另一个命令的输入,而这个命令的输出又会传递至另一个命令
$ cmd1 | cmd2 | cmd3
这些命令就称作“filter”, 使用的是“|”来连接filter,(标准输入和标准输出在什么时候起的作用呢?)
如:$ls -l | cat -n > out.txt
过程:ls -l的输出通过“|”传给cat -n, cat -n 是怎么接受这些数据的呢?
cat -n通过标准输入(stdin)接收到输入的内容!加上行号后将输出重定向到文件out.txt
注:stdout中的内容,不做处理的话,直接打印到屏幕中
cmd从stdin中接受数据,cmd的输出(即命令结果)在stdout中
还有两种取命令输出的方法:
1, 命令结果存放到某个变量中
cmd_output=$(ls | cat -n)
echo $cmd_output
2, 用“反引号”把命令输出存到变量中
cmd_output=`ls | cat -n`
echo $cmd_output
注:以上两种方式(使用子shell,反引用)将命令的输入读入一个变量中,可以将它放入双引号中,以保留空格和换行符(\n)
cmd_output="$(ls | cat -n)"
echo $cmd_output
相关文章推荐
- (转)Windows管道(Pipe)重定向stdout,stderr,stdin
- 【转】stdin, stdout, stderr 以及重定向
- Windows管道(Pipe)重定向stdout,stderr,stdin
- 验证stderr stdout stdin 缓冲类型和缓冲区大小 以及在重定向后缓冲类型的改变
- Windows管道(Pipe)重定向stdout,stderr,stdin
- 验证daemon程序中setsid的作用以及重定向stdin、stdout、stderr的原因
- stdin, stdout, stderr以及重定向
- Windows管道(Pipe)重定向stdout,stderr,stdin
- linux下stdin和stdout以及stderr
- 转载:stdin, stdout, stderr以及重定向
- Linux 下 stdin stdout stderr 的由来
- Linux下如何重新打开标准输入输出(stdin,stdout,stderr)
- linux中stdout,stdin,stderr意义
- 关于输入输出(stdin、stdout、stderr)
- linux下的stdin,stdout,stderr详解
- stdin、stdout、stderr
- linux中stdout,stdin,stderr
- stdin、stdout、stderr
- Unix/Linux下的stdout,stdin和stderr
- 对stdin/stdout/stderr进行保护