`
eksliang
  • 浏览: 598320 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
阅读更多
    转载请出自出处:http://eksliang.iteye.com/blog/2105677   

    管道命令在bash的连续处理程序中是相当重要的,尤其在使用到前一个命令的studout(标准输出)作为这次的stdin(标准输入)时,就显得太重要了,某些命令需要用到文件名,例如上篇文档的的切割命令(split)、还有tar(打包)命令等等!这时这个文件就承当studout或者stdin,这个时候这个studout或者stdin就可以用减号(-)来替代

 实例一:使用ls -al /将输出的信息中,没3行记录成一个文件

[root@bogon bash]# ls -al / | split -l 3 - s
[root@bogon bash]# wc -l s*
   3 saa
   3 sab
   3 sac
   3 sad
   3 sae
   3 saf
   3 sag
   2 sah
  23 total
#一般来说,如果需要stdout(标准输出)/stdin(标准输入),但偏偏又没有文件,有的只是“-”时,那么那个“-”就会被当做stdout或者stout

 

实例二:tar -cvf  tarName.tar ./bash 本来是这样的,看我怎么用“-”来替他文件的标准输出

[root@bogon ~]# tar -cvf   ./bash
tar: Cowardly refusing to create an empty archive
Try `tar --help' or `tar --usage' for more information.
#这里报错了,没有办法,因为语法错误
[root@bogon ~]# tar -cvf  - ./bash 
./bash/
./bash/sag
./bash/saf
./bash/sae
./bash/aa.txt
./bash/sab
./bash/saa
./bash/sad
./bash/cc.txt
./bash/bb.txt
./bash/test.txt
.....
#看到了没有这个时候用”-“替代了本来输出到文件,而标准输出到了屏幕

 

    实例三:综合实例

[root@bogon ~]# tar -cvf - ./bash | tar -xvf -
./bash/
./bash/sag
./bash/saf
......!(省略)
./bash/saf
./bash/sah
./bash/sac
tar: ./bash: file changed as we read it
./bash/sae
.......!省略)
./bash/sah
./bash/sac

  上面这个例子是说我将./bash这个文件打包,但是打包的文件不是记录到文件,而是传送到标准输出(stdout);经过管道后,将tar -cvf - ./bash传给后面的tar -xvf -。后面这个“-”则是取用前面一个命令的stdout作为stdin,因此这里就不需要使用文件了,这是很常见的例子,因为我们写脚本的时候,就不要去写个临时文件了。

 

0
0
分享到:
评论

相关推荐

    《Linux命令行与Shell脚本编程大全》随书的一些源码、笔记_Linux_Shell-Bash-.zip

    《Linux命令行与Shell脚本编程大全》随书的一些源码、笔记_Linux_Shell-Bash-

    Linux CentOS下shell显示-bash-4.1$不显示用户名路径.docx

    在 CentOS 下新增一个用户,登录进去之后 shell 脚本的信息如下:bash-4.1$,而不是我们经常看到的 username@hostname 的组合,看起来很不舒服。 解决方案 问题的原因是因为没有配置 .bash_profile 的问题,可以...

    linux learning the bash shell

    Bash(Bourne Again SHell)是Unix/Linux操作系统中最常用的命令解释器之一,也是大多数Linux发行版的默认Shell。 #### 描述:Learn Bash Shell - **学习目标**:了解如何在Linux环境中使用Bash Shell进行操作。这...

    linux-shell-scripting-fundamentals-bash.epub

    linux-shell-scripting-fundamentals-bash.epub

    Linux Shell Scripting With Bash - 2005-Unencrypted

    根据提供的信息,我们可以总结出以下关于《Linux Shell Scripting With Bash - 2005-Unencrypted》这本书的关键知识点: ### Linux Shell Scripting with Bash - 2005-Unencrypted #### 书籍概述 这本书是一本关于...

    bash-shell-to-bat-converter:bash shell脚本到Windows批处理文件的转换器

    在线尝试: : 用法建立: git clone https://github.com/daniel-sc/bash-shell-to-bat-converter.gitcd bash-shell-to-bat-converternpm installnpm run tsc 用法: node lib/cli.js FILE_TO_CONVERT.sh 这将创建...

    Linux Shell Scripting with Bash

    - Bash(Bourne-Again SHell)是 Unix 和 Linux 系统中最常用的 Shell 类型之一。 - Bash 提供了丰富的功能,支持变量、数组、条件判断、循环等结构化编程特性。 **2. Bash Shell 脚本基础语法** - **脚本的第一...

    解决ssh远程登陆linux显示-bash-4.1$的问题

    以上就是小编为大家带来的解决ssh远程登陆linux显示-bash-4.1$的问题全部内容了,希望大家多多支持软件开发网~ 您可能感兴趣的文章:浅谈linux中shell变量$#,$@,$0,$1,$2的含义解释php $_SERVER windows系统与linux...

    linux bash shell中文手册

    Linux Bash Shell 中文手册是为Linux用户和系统管理员提供的一份详细指南,涵盖了Bash Shell的基本用法和高级特性。Bash(Bourne-Again SHell)是GNU项目下的Unix/Linux操作系统默认的命令行解释器,它继承并扩展了...

    Bash shell 学习笔记

    ### Bash Shell 学习笔记知识点概览 #### 1. 引言 - **Shell**:作为用户与操作系统之间的桥梁,Shell提供了一种与系统进行交互的方式,支持用户执行命令和编写脚本来自动化任务。 - **Bash**:是Bourne-Again ...

    Linux零基础学习笔记 Shell编程-菜鸟入门(超详细)

    Linux是开源的操作系统,它的命令行界面,尤其是Shell编程...因此,无论你是技术小白还是希望进一步提升,这份“Linux零基础学习笔记 Shell编程-菜鸟入门”都会是你宝贵的资源。祝你在学习的道路上越走越远,不断进步!

    《Learning the bash Shell,3rd Edition,by Cameron Newham》.pdf

    书中通过大量的实践示例讲解了如何高效地使用Linux环境中的bash shell。 #### 三、章节内容概览 1. **第1章:bash基础** - **1.1 什么是shell?** - 解释shell的基本概念,包括它作为用户与操作系统之间的接口的...

    Advanced Bash Shell Guide

    Bash Shell,全称Bourne-Again SHell,是Linux和类UNIX系统中最常用的命令行解释器。它基于原始的Shell编程语言,由Steve Bourne开发,而Bash则是其增强版,由GNU项目维护。这份"Advanced Bash Shell Guide"旨在帮助...

    linux下shell编程实验报告-考勤系统

    ### Linux 下 Shell 编程实验报告 - 考勤系统 #### 实验目的 通过本实验,学生将能够深入理解 Shell 程序的设计方法,包括但不限于如何编写、运行及调试 Shell 脚本。此外,学生还将学习如何利用 Shell 脚本来模拟...

    linux - Advanced Bash Shell Scripting Guide

    《Linux高级Bash Shell脚本编程指南》是一本专为Linux用户深入理解并掌握Bash Shell脚本编程的宝贵资源。Bash(Bourne-Again SHell)是Unix及类Unix系统中最常用的命令行解释器,它为用户提供了一种强大而灵活的方式...

Global site tag (gtag.js) - Google Analytics