美文网首页ShellShell
Shell脚本语言:printf命令、函数及输入输出重定向(6)

Shell脚本语言:printf命令、函数及输入输出重定向(6)

作者: 095b62ead3cd | 来源:发表于2018-08-03 12:14 被阅读44次

    一、printf命令

    1. printf命令与echo命令的区别
        区别一:printf不会自动换行,echo自动换行
        区别二:printf一般用于格式打印,echo用于标准输出
    

    2.printf语法结构:

        printf format-string 参数列表
    

    3.示例代码:

    printf "%-8s %-8s %-8s\n" 姓名 性别 体重kg
    printf "%-8s %-8s %-8s\n" a 1 1kg
    printf "%-8s %-8s %-8s\n" b 1 1kg
    printf "%-8s %-8s %-8s\n" c 1 1kg
    
    # "%-8s"表示一个宽度为8个字符的内容  "-"表示左对齐
    # 使用单引号也可以
    

    结果:

    姓名   性别   体重kg
    a        1        1kg     
    b        1        1kg     
    c        1        1kg
    
    1. printf转义字符:
    printf " \"<%s>\" \n" "hello"
    

    二、函数

    1. 语法结构:
      function 方法名(){
      代码
      }
    2. 示例代码:
    function test(){
    echo "hello"
    echo "第1个参数: $0"
    echo "第2个参数: $1"
    echo "第3个参数: $2"
    echo "第4个参数: $3"
    }
    

    调用:

    test "a" "b" "c"
    

    结果:

    hello
    第1个参数: ./hello.sh
    第2个参数: a
    第3个参数: b
    第4个参数: c
    
    1. 函数的返回值
      3.1 函数默认是将标准输出传递出来,不是返回值,例如:
    function test(){
    echo "hello"
    echo "第1个参数: $0"
    echo "第2个参数: $1"
    echo "第3个参数: $2"
    echo "第4个参数: $3"
    }
    a=`test "a" "b" "c"`
    echo ${a}
    

    结果:

    hello 第1个参数: ./hello.sh 第2个参数: a 第3个参数: b 第4个参数: c
    

    3.2 调用函数无需加(),直接写函数名
    3.3 使用$?接收上一程序的返回值状态,一般是0和1

    三、重定向
    1.1 输入重定向
    语法结构:

    wc 文件名称
    

    示例代码:

    wc fileA.sh #将fileA中的内容读取到控制台,有三个信息,第一个参数:文本行数,第二个参数:文本词数,第三个参数:字节大小。
    

    如图:


    控制台及源文件

    1.2 输出重定向
    1.2.1 ">" :把方向指向一份文件,那么将该文件中的内容删除,写入新的内容
    示例:
    fileA代码:

    cat fileA.sh | while read line
    do
    echo "${line}"
    done
    
    echo "我在文件A中"  >fileB.sh
    

    fileB代码:

    echo "文件B"
    

    执行A,查看fileB.sh结果,此时发现文件B中的内容被替换了:

    我在文件A中
    

    1.2.2 ">>":追加
    fileA代码:

    cat fileA.sh | while read line
    do
    echo "${line}"
    done
    
    echo "我在文件A中"  >>fileB.sh
    

    fileB代码:

    echo "文件B"
    

    执行A,查看fileB.sh结果,此时发现文件B中的内容被追加了一句:

    文件B
    我在文件A中
    

    相关文章

      网友评论

        本文标题:Shell脚本语言:printf命令、函数及输入输出重定向(6)

        本文链接:https://www.haomeiwen.com/subject/ftcyvftx.html