![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
shell I/O重定向
文章平均质量分 85
挑大粪
这个作者很懒,什么都没留下…
展开
-
Shell 管道线 和 过滤器
1):基本概念 原始数据从一端进入,然后接着一个程序对数据进行处理,直到另一端,数据以结果形式出现。shell 允许创建一序列命令,命令(也可以是脚本)用’|’ 分隔开来,代表一个程序的标准输出(不包含有标准错误)可以 自动地发送给 下一个程序的标准输入。 阅读方式为: 从左到右的方式 读取。 两个程序之间的连接’|’ 就是 “管道” , “命令序列”称为 管道线。编写习惯: 当编写原创 2016-09-18 12:24:51 · 864 阅读 · 0 评论 -
Shell 条件执行元字符
&& || 元字符只有前面一条命令执行成功了,才执行后面一条,否则,后面命令不执行:$ command1 && command2$ grep a output >/dev/null && sort output只有前面一条命令执行不成功,才执行后面一条,否则,后面的命令不执行:$ command1 || command2$ update || echo ' The update pro原创 2016-09-18 12:52:07 · 437 阅读 · 0 评论 -
Shell I/O重定向的原理解释
在Unix系统中,每个进程都有STDIN、STDOUT和STDERR这3种标准I/O,它们是程序最通用的输入输出方式。几乎所有语言都有相应的 标准I/O函数 ,比如,C语言可以通过scanf从终端输入字符,通过printf向终端输出字符。熟悉Shell的朋友都知道,我们可以方便地对 Shell命令进行I/O重定向,比如 $find -name "*.java" >testfile.txt 把当前目录转载 2016-09-18 14:09:55 · 2239 阅读 · 0 评论 -
fork创建子进程利用pipe管道通信
转自:这里。每个进程各自有不同的用户地址空间,任 何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信(IPC,InterProcess Communication)。 如下图所示: 管道 管道是一种最基本的IPC机制,由pipe函数创建:#转载 2016-09-19 14:00:57 · 13049 阅读 · 0 评论 -
(2)再说管道与shell脚本执行关系
实验1:变量$path的输出是空值。root@37C:~# pwd | read pathroot@37C:~# echo $pathroot@37C:~# 实验2:#代码:$ ls -l1 | while read linedo let count=$count+1echo "line-${count}: $line"done--有输出结果:line-1: 总用量 292line原创 2016-09-19 17:31:16 · 1158 阅读 · 0 评论 -
(1)Shell 脚本的执行进程
# 当前login-shell的进程PID.root@37C:~# echo $$3016# 测试脚本:root@37C:~# cat run.sh#!/bin/bash # 获取执行shell脚本的非交互shell的PID.echo $$######echo "test1:-------------------------"ps -ef | grep `echo $$`echo原创 2016-09-19 16:28:50 · 1226 阅读 · 0 评论 -
Shell I/O重定向与exec的使用介绍
shell原创 2016-09-20 13:45:25 · 4627 阅读 · 0 评论 -
Shell I/O重定向
① 默认情况下,在登陆时,shell自动将标准输入设置为 “键盘”,将标准输出和标准错误设置为 “屏幕”。②使用>和>>重定向的要点 对于Shell两大家族: (1)将命令的输出覆盖到文件中 command > filename 例如:ls > file1 命令执行效果: 如果不存在file1,则创建,并写入ls的输出内容; 如果已存在file1,原创 2016-09-18 11:52:38 · 359 阅读 · 0 评论 -
Shell处理命令的内部机制 和eval
看图说文! 命令行处理解释了Shell如何处理一个命令的内部机制: Shell从标准输入或脚本读取的每一行称为管道线(pipeline),每一行包含一个或多个命令,这些命令用管道符隔开,Shell对每一个读取的管道线都按照下面的步骤处理:1、将命令分割成令牌(token),令牌之间以元字符分隔。Shell的元字符集合是固定不变的,包括空格、Tab键、换行字符、分号(;)、小括号、输入重...原创 2016-09-20 19:22:26 · 1244 阅读 · 2 评论