• 标准输入输出


    1、输出命令

    echo

    View Code
    #!/bin/bash
    #echo命令可以显示文本行或变量,或者把字符串输入到文件
    #-e 解析转义
    #\c 不换行
    #\t 跳格
    #\n 换行
    
    echo -e "enter your name:\c"
    read name
    echo "$name"
    echo -n "welcome boobooke"
    echo -e "welcome b\toobooke"
    echo -e "welcome boobooke\n"

    read 

    View Code
    #!/bin/bash
    echo -e "your first name:\c"
    read first
    echo -e "your middle name:\c"
    read middle
    echo -e "your last name:\c"
    read last

    cat

    cat file | more

    cat file1 fiel2 > file

    |       命令1 | 命令2

           ls | grep ini

    管道:是一个命令的标准输出与另一个命令的标准输入之间的连接,不经过任何中间文件

    管道线:是由管道操作符分割的一个命令序列,最简单的管道线是一个简单命令

    管道操作符:用符号"|"表示

    View Code
    [arcerzhang@DG3 shell]$ name="hi arcerzhang i love you"
    [arcerzhang@DG3 shell]$ echo $name
    hi arcerzhang i love you
    [arcerzhang@DG3 shell]$ echo $name | awk '{print $1 "\t" $2}'
    hi      arcerzhang
    [arcerzhang@DG3 shell]$ echo $name | awk '{print $1 "\t" $2 "\t" $3}'
    hi      arcerzhang      i
    [arcerzhang@DG3 shell]$ echo $name | awk '{print $1 "\t" $2 "\t" $3 "\t" $4 "\t" $5}'
    hi      arcerzhang      i       love    you
    [arcerzhang@DG3 shell]$
    统计查询结果
    过滤IP信息
    View Code
    获取IP地址信息
    #!/bin/bash
    ip_info_a=`ifconfig | grep "inet addr:" | grep -v "127.0.0.1" | grep -v "192.168.122.1" | awk '{print $2}' | awk -F ':' '{print $2}'`;
    echo "pattern a:当前计算机的IP地址是:$ip_info_a"
    #使用$()代替``
    ip_info_b=$(ifconfig | grep "inet addr:" | grep -v "127.0.0.1" | grep -v "192.168.122.1" | awk '{print $2}' | awk -F ':' '{print $2}');
    echo "pattern b:当前计算机的IP地址是:$ip_info_b"
    ~

    查询指定的文件是否存在,给出相应信息

    View Code

    标准I/O

    重定向

    1、标准输入、输出和错误

    标准输入

      标准输入是文件描述符0.它是命令的输入,缺省是键盘

    标准输出

      标准输出是文件描述符1.它是命令的输出,缺省是屏幕,也可以是文件.

    标准错误

      标准错误时文件描述符2

    2、文件重定向

    [arcerzhang@DG3 shell]$ ls *
    arcerzhang.log  b.txt    c.txt     hello.sh   operator.sh  read.sh    while.sh  who.txt
    a.txt           case.sh  echo.sh   in_out.sh  param.sh     test.sh    who.out
    boobooke.info   cmd.sh   file.out  ipinfo.sh  random.sh    while1.sh  who.t
    [arcerzhang@DG3 shell]$ ls -a*
    ls:无效选项 -- *
    请尝试执行"ls --help"来获取更多信息。
    [arcerzhang@DG3 shell]$ ls a*
    arcerzhang.log  a.txt
    [arcerzhang@DG3 shell]$ ls z*
    ls: 无法访问z*: 没有那个文件或目录
    [arcerzhang@DG3 shell]$ ls z* 2> erro.log
    [arcerzhang@DG3 shell]$ cat erro.log
    ls: 无法访问z*: 没有那个文件或目录
    [arcerzhang@DG3 shell]$

    cmd >filename          把标准输出重定向到一个新文件中

    cmd >>filename         把标准输出重定向到一个文件中(追加)

    cmd 1> filename           把标准输出重定向到一个文件中

    cmd >filename 2>&1       把标准输出和标准错误输出一起重定向到一个文件中

    cmd 2>filename            把标准错误重定向到一个文件中

    cmd 2>>filename 2>&1       把标准错输出,标准错误输出都重定向到一个文件中(追加)

    cmd < filename          把cmd命令以filename文件作为标准输入

    cmd < ABC               从标准输入中读入,直至遇到ABC分界符

    cmd <&m             把文件描述符m作为标准输入

    cmd >&m             把标准输出重定向到文件描述符m中

    cmd <&-               关闭标准输入

    参考文章 

  • 相关阅读:
    7.ps相关选项
    6.ps的大U和小u区别
    5.进程优先级
    4.状态间的六种转换情况
    3.进程的不同状态
    2.进程与程序的关系
    1.进程概念
    不换行
    for引用变量
    脚本进阶
  • 原文地址:https://www.cnblogs.com/arcer/p/2993148.html
Copyright © 2020-2023  润新知