(管道)写入子shell

随便写一个文件作为第二个文件

cat  demo

aaa

bbb

ccc

-----------------------------------------------------------------------------

源码: cat  test

if (( $# <  1 ))                      /*判定输入值或文件是否为空*/

then
        echo "Usage: $0 filename " >&2
        exit 1
fi
count=1                   
cat $1 | while read line      /*显示第2个文件并读入管道*/
do
   ((count == 1)) && echo "Processing file $1..." > /dev/tty     /*第一行内容显示在命令行*/
   echo -e "$count\t$line"          /*修改---输出管道行值*/
   let count+=1
done > tmp$$                            /*将输出的列表存入临时文件tmp$$*/    

mv tmp$$ $1                             /*将临时文件temp$$修改名称到第二个文件$1*/

------------------------------------执行结果--------------------------------------------------

[root@luozhonghua Ex_14.32-14.55]# sh numberit memo
Processing file memo...
tmp5303
[root@luozhonghua Ex_14.32-14.55]# cat memo
1       aaa
2       bbb
3       ccc

时间: 2024-12-02 17:00:22

(管道)写入子shell的相关文章

Linux shell编程 13 ---- 子Shell与进程处理

    Linux是一种用户控制的多作业操作系统,系统允许多个系统用户同时提交作业,而一个系统用户又可能用多个Shell登录,每个系统用户可以用一个Shell提交多个作业    1 子Shell     1 父子Shell是相对的,它描述了两个Shell进程的fork关系,父Shell指在控制终端或窗口给出提示符的进程,子Shell是由父Shell创建的进程,在Linux中,只有一个函数可以创建子进程,那就是fork函数          2 圆括号结构能够强制将其中的命令运行在子Shell中,

Shell处理带空格的文件名的方法_linux shell

现在很多人命名的时候都喜欢用空格,例如"An Introduction.doc".但是这种命名方式给Linux命令行工具和Shell带来了困扰,因为大多数命令中,都是默认以空格做为值与值之间的分隔符,而不是做为文件名的一部分. 看下面的脚本,我们可以了解的更清楚: 执行的结果如下: 实际上,当前目录的文件只有两个: 对于简单的文件名,如上例中,我们也可以通过 for i in *doc 这样简单的方法来获得文件列表.但是对于复杂的环境,如下图,我们如何获得这些列表呢? 有一个办法,通过

SHELL技巧:处理文件名中的那些空格

现在很多人命名的时候都喜欢用空格,例如"An Introduction.doc".但是这种命名方式给Linux命令行工具和Shell带来了困扰,因为大多数命令中,都是默认以空格做为值与值之间的分隔符,而不是做为文件名的一部分.   看下面的脚本,我们可以了解的更清楚:     执行的结果如下:     实际上,当前目录的文件只有两个:     对于简单的文件名,如上例中,我们也可以通过 for i in *doc 这样简单的方法来获得文件列表.但是对于复杂的环境,如下图,我们如何获得这

linux shell 管道命令(pipe)使用及与shell重定向区别_linux shell

看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了.这次我们看下管道命令了.shell管道,可以说用法就简单多了. 管道命令操作符是:"|",它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力.然后,传递给下一个命令,作为标准的输入 standard input. 管道命令使用说明: 先看下下面图: comma

跟老男孩学Linux运维:Shell编程实战3.2 环境变量

3.2 环境变量 环境变量一般是指用export内置命令导出的变量,用于定义Shell的运行环境,保证Shell命令的正确执行.Shell通过环境变量来确定登录用户名.命令路径.终端类型.登录目录等,所有的环境变量都是系统全局变量,可用于所有子进程中,这包括编辑器.Shell脚本和各类应用. 环境变量可以在命令行中设置和创建,但用户退出命令行时这些变量值就会丢失,因此,如果希望永久保存环境变量,可在用户家目录下的.bash_prof?ile或.bashrc(非用户登录模式特有,例如远程SSH)文

Linux 脚本编写基础知识_linux shell

1. Linux 脚本编写基础 1.1 语法基本介绍 1.1.1 开头 程序必须以下面的行开始(必须放在文件的第一行):#!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序. 当编辑好脚本时,如果要执行该脚本,还必须使其可执行. 要使脚本可执行:编译 chmod +x filename 这样才能用./filename 来运行 1.1.2 注释 在进行shell编程时,以#开头的句子表示注释,直到这一行的结束.我们真诚地建议您在程

跟老男孩学Linux运维:Shell编程实战.2

第3章 Shell变量的核心基础知识与实践 3.1 什么是Shell变量 1.?什么是变量 在小学或初中时,我们开始接触数学方程式,例如:已知x=1,y=x+1,那么y等于多少? 在上述问题中,等号左边的x和y当时被称为未知数,但在Shell编程里它们是变量名,等号右边的1和x+1则是变量的内容(变量的值).注意,这里的等号符号被称为赋值,而不是等号. 通过上面的例子可以得出一个变量概念的小结论:简单地说,变量就是用一个固定的字符串(也可能是字符.数字等的组合)代替更多.更复杂的内容,该内容里可

很实用的Linux 系统运维常用命令及常识(超实用)_linux shell

1 文件管理2 软件管理3 系统管理 4 服务管理5 网络管理6 磁盘管理 7 用户管理8 脚本相关9 服务配置 ================================== ---------------------------------- 1 文件管理 ---------------------------------- 创建空白文件 touch 不提示删除非空目录 rm -rf 目录名 (-r:递归删除-f 强制) ################################

Linux环境进程间通信:管道及有名管道

  管道及有名管道 在本系列序中作者概述了 linux 进程间通信的几种主要手段.其中管道和有名管道是最早的进程间通信机制之一,管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信. 认清管道和有名管道的读写规则是在程序中应用它们的关键,本文在详细讨论了管道和有名管道的通信机制的基础上,用实例对其读写规则进行了程序验证,这样做有利于增强读者对读写规则的感性认识,同时也提供了应用范例. 1. 管道概述及相关API应用