panjianm 发表于 2018-8-17 08:22:32

一起学Shell之(六)输入、输出、文件与命令执行

  #----------------------------------------------------------#
  # ====> 红色字体 -特指煮酒个人所见。加粗则为需要重点注意。 #
# ====> 蓝色加粗 -特指与本文相关人员,包括参与修正的朋友。 ## ====> 煮酒品茶 -Http://cwtea.blog.51cto.com         ##----------------------------------------------------------#  序:完整介绍shell语言,如何以不同的方式处理输入、输出和产生文件名,接着是命令替换,命令行参数。各类引用。重点命令行,讨论shell提供的各类引用,最后则是命令执行顺序,并针对内建于shell里的命令作介绍。
标准输入、标准输出与标准错误输出: 执行过程:读取标准输入、写入标准输出,并将错误信息传递给标准错误输出。我们称它为过滤器,因为它们过滤数据流,每一个都会在数据流上执行某种运算,再通过管道,将它传递给下一个。read读取行。 语法:read [ -r ] variable ... 用途:将信息读入一个或多个shell变量。主要选项:-r:原始读取,不作任何处理,不将行结尾处的反斜杠解释为续行字符。行为模式:自标准输入读取行后,通过shell字段切割的功能(使用$IFS)进行切分,第一个单词赋值给第一个变量。第二个单词则赋值第二个变量,以此类推,如果单词多于变量,则所有剩下的单词,全赋值纪念品最后一个变量。read一量遇到文件结尾(end-of-file),会以失败值退出。如果输入行以反斜杠结尾,则read会丢弃反斜杠与换行字符,然后继续读取下一行数据,如果你有使用-r选项那么read便会以字面意义读取最后的反斜杠。 read可以一次读取所有的值到多个变量里,这种情况下,在$IFS里的字符会分隔输入行里的数据,使其成为各自独立的单词。例:------------------------# cat readprintf "Enter name, rank, serial number: "read name rank sernoecho $nameecho $rankecho $serno# ./readEnter name, rank, serial number: cwtea 100 1101 #以空格方式cwtea1001101------------------------ 重定向:,>>,|额外的重定向运算符set -c解释:Posix Shell提供了防止文件意义截断的选项:执行set -c命令可打开shell所谓的禁止覆盖选项(noclobber),当它在打开状态下时,单纯的>重定向遇到目标文件已存在时,就会失败。>|运算符则可令noclobber选项失效。提供行内输入的
页: [1]
查看完整版本: 一起学Shell之(六)输入、输出、文件与命令执行