十六、shell中的输入与输出

         在shell中,可以用几种不同的方式读入数据,如可使用标准输入<缺省为键盘>;或者指定一个文件作为输入输出也是一样,当不指定某个文件作为输出,标准输出总是和终端屏幕相关联,该章主要讲解shell中的输入与输出。

 

一、输入
     shell中的输入,常采用read
     ◆ 一般形式:read 变量1 变量2 ...
     ◆ 例子:
            

         # read vari_1 vari_2
             abc 123 456
         # echo $vari_1
            abc
         # echo $vari_2
           123 456

 

、输出
         1、echo
               ◆ 一般形式: echo -option string
               ◆ 常用参数:
                    \c 不换行(默认)
                    \f 进纸
                    \t 跳格
                    \n 换行
                    \e 使转义字符生效
                    \E 使转义字符失效(默认)
              ◆  例子:

              # echo -e "ss\n"
                ss
              # 


        2、cat
               ◆  说明:用于显示文件内容、创建文件、显示控制字符
                                 显示文件内容时,一次行将内容系显示完全,要分页或分屏查看可与more,less等组合使用
               ◆  例子:
                      a、查看文件内容
                            #cat /etc/passwd | more  <按Enter翻页>
                            #cat -n /etc/group  | less  <按Enter或方向键翻页,按Ctrl+Z结束> 显示内容时,同时显示行号
                            #cat a.txt b.txt

                      b、创建新文件,并输入内容
                            #cat  > group.txt      此时,从键盘输入内容,并按CTRL-D即可结束输入

                      c、cat还有一个很实用的功能,显示控制字符
                           #cat -v a.sh
                             Hello^M  <^M就是控制字符>
                             当我们在windows上编写好脚本后上传至linux后,语法没错误,但执行时,总报错,此时可能就是引入控制字符所致
                             我们可以通过该功能查看,如带^M,我们可以同UE的转换功能,将DoS转换为Unix格式,再执行

 

       3、管道 |

              ◆  说明:可以管道将一个命令的输出传递给下一个命令作为输入,可理解为信息的传输,从这一端传递给另一端
              ◆  形式:命令1 | 命令2
              ◆  例子:

              # 显示当前的登录用户及IP
              # who | awk '{print $1 "\t" $6}' 
                root    (10.70.151.79)
                oralce  (10.71.149.54)


       4、tee
             ◆  说明:可以用字母T来形象的表示,它将输出的一个副本输送到标准输出,另一个副本拷贝到相应的文件中
                               也就是当你想看到输出的同时,也想将其存入到文件中,此命令非常适合
             ◆  形式: tee -a file  <-a 表示追加到文件末尾>
             ◆  例子:      

        # pwd | tee path
          /root
        # cat path
          /root

 

三、文件重定向

       1、标准输入、输出和错误
             当我们在shell中执行命令时,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件

             

文件

文件描述符

缺省
输入文件     --- 标准输入0键盘
输出文件     --- 标准输出1屏幕
错误输出文件 --- 标准错误2屏幕
  

       2、文件重定向
             2.1、重定向标准输出 

                     ◆ 格式:command > file ; command >> file

                     ◆  例子:
                           #cat /etc/group | awk -F: '{print $1}' |  sort 1> sort_out 或
                           #cat /etc/group | awk -F: '{print $1}' |  sort > sort_out
                           #who >> who.txt  
      
                     ◆ 备注:

                          >:表示覆盖写入 

                         >>:表示追加写入
            2.2 、重定向标准输入 
                    

                     ◆ 格式:command < file ; command << delimiter  ("此处"文档)

                     ◆  例子:

              # sort < sort.txt
            # sort < sort.txt > result.txt                            #将sort.txt进行排序并将结果保存到result.txt文件中
              # sort >> result <<jiedingfu 或 sort <<jiedingfu >>result #将从键盘输入的字符进行排序,并将排序后的结果保存到result文件中
                > a
              > c
              > b
              > f
              > e
              > 1
              > 3
              > 2
              > jiedingfu
           # cat result 
             1
             2
             3
             a
             b
             c
             e
             f                   

                      ◆ 备注:      

                                    上面这个例子,界定符可以根据个人喜好任意设定,此处为jiedingfu
                                     

            2.3、重定向标准错误
                     ◆ 例子:

                          cat exist_file not_exist_file  1>ok_file 2>error_file ,执行结果如下:
                          在该目录下生成ok_file ; error_file两个文件
                          ok_file     :记录exist_file文件中内容
                          error_file :记录错误信息"cat: not_exist_file: No such file or directory"

           2.4、合并标准输出和标准错误 2>&1

                     ◆ 例子:
                          cat exist_file not_exist_file  >ok_file 2>&1,执行结果:
                          标准输出和标准错误均记录到ok_file文件中

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值