Sobell谈bash和Linux命令行命运

豆豆网   技术应用频道   2007年04月21日  【字号: 收藏本文

本文详细介绍Sobell谈bash和Linux命令行命运

  $ cat to_upper

  #!/bin/bash

  #set -x

  while read arg

  do

  echo "$arg" | tr '[a-z]' '[A-Z]'

  done

  $ echo abcdef | to_upper

  ABCDEF

  g6程序启动“to_upper”作为一个协作进程。这个gawk程序读取标准的输入或者在命令行中指定的一个文件,把这个输入翻译成大写字母,并把翻译的数据写入一个标准的输出。

  $ cat g6

  {

  print $0 |& "to_upper"

  "to_upper" |& getline hold

  print hold

  }

  $ gawk -f g6 < alpha

  AAAAAAAAA

  BBBBBBBBB

  CCCCCCCCC

  DDDDDDDDD

  这个g6程序在括号之内有一个混合的指令,包含三个指令。由于没有执行方式,gawk对于每一行输入内容都执行一次这个混合的指令。

  第一个指令“print $0”把当前的记录发送到标准的输出。“|&”运算符把标准的输出从新指向名为“to_upper”的程序。“to_upper”作为一个协作进程在运行。这些程序的外边需要一个括号。第二个指令把来自“to_upper”的标准输出重新指向一个“getline”指令。这个指令将其标准的输出复制到这个名为“hold”的变量。第三个指令“print hold”把“hold”变量的这个内容发送到标准的输出。

  这个工具的名称是“tr”

  LP:你能不能更多地谈一下“tr”工具?

  答:哦,tr,好的。首先想到的事情是这是一个微不足道的问题的答案。命名一个Linux工具。这个工具仅接收来自标准输入的输入,从来不接收作为来自命令行变量的文件的输入。这个怪物只是有时候有用,但是,当它有用的时候,它是非常有用的。下面是摘录一些有关“tr”的内容:

责编:豆豆技术应用

正在加载评论...