zoukankan      html  css  js  c++  java
  • shell中的输入输出和编程中的变量(shell 03)

    shell中的输入输出
    标准输入:键盘
    标准输出:终端显示器
    >> 追加是换行追加的
    echo
    -n 不尾随换行符
    -e 启用解释反斜杠的转义功能
    -E 禁用解释反斜杠的转义功能(默认)
    --help 显示此帮助信息并退出
    --version 显示版本信息并退出

    只用cat

    cat<filename1>filename2

    内联输入重定向
    command<<EOF(标识符)
    data
    EOF (标识符)

    在脚本中重定向输入输出
    临时重定向
    永久重定向
    1.临时重定向
    command>&文件描述符

    [root@localhost110 ~]# cat h.sh
    #! /bin/bash
    echo 'test error' >&2
    echo 'normal output'
    [root@localhost110 ~]# chmod u+x h.sh
    [root@localhost110 ~]# ./h.sh
    test error
    normal output
    [root@localhost110 ~]# ./h.sh 2>errlog
    normal output
    [root@localhost110 ~]# cat errlog
    test error
    2、永久重定向
    exec 文件描述符>文件名
    [root@localhost110 ~]# cat h.sh
    #! /bin/bash
    exec 1>output
    echo 'test error' >&2
    echo 'output1'
    echo "output2"

    [root@localhost110 ~]# ./h.sh
    test error
    [root@localhost110 ~]# cat output
    output1
    output2
    h.sh内容

    [root@localhost110 ~]# ./h.sh
    [root@localhost110 ~]# cat output
    output1
    output2
    [root@localhost110 ~]# cat output_err
    test error
    test error2

    输入重定向
    exec 0<filename
    h1.sh内容

    [root@localhost110 ~]# chmod u+x h1.sh
    [root@localhost110 ~]# ./h1.sh
    line #1:test error
    line #2:test error2

    管道
    将一个命令的输出重定向至另一个命令的输入
    command1|command2

    2命令是同时进行的不是先执行完一个再继续下一个的
    tee 输出到文件
    [root@localhost110 ~]# date
    2016年 10月 16日 星期日 09:52:05 EDT
    [root@localhost110 ~]# date|tee datefile
    2016年 10月 16日 星期日 09:52:17 EDT
    [root@localhost110 ~]# cat datefile
    2016年 10月 16日 星期日 09:52:17 EDT

    shell编程中的变量
    用户自定义变量
    系统环境变量


    按照作用范围
    脚本中的自定义变量
    环境变量
      局部环境变量
      全局环境变量

    shell脚本中的自定义变量规则
    合法字符:字母,数字,下划线
    合法字符数量:<=20
    特别注意:区分大小写

    变量声明
    变量名=变量值 如var=1
    变量值的类型:自动分配 数字,字符串 日期,数组
    调用方式: $变量名 如$var
    作用范围:脚本生存周期内

    `可把命令执行后的结果赋给变量

    [root@localhost110 ~]# date
    2016年 10月 16日 星期日 10:10:02 EDT
    [root@localhost110 ~]# mdate=`date`
    [root@localhost110 ~]# echo $mdate
    2016年 10月 16日 星期日 10:10:23 EDT
     mdate=`date +%Y-%m-%d`
     echo $mdate
    2016-10-16
  • 相关阅读:
    C# winform 选择文件保存路径
    笔记
    Redis 队列好处
    异步线程
    WebApi 运行原理
    MVC ---- 怎删改查
    如何快速掌握一门新技术/语言/框架...
    膝盖中了一箭之康复篇
    翻译-Salt与Ansible全方位比较
    膝盖中了一箭之手术篇
  • 原文地址:https://www.cnblogs.com/HKUI/p/6010670.html
Copyright © 2011-2022 走看看