zoukankan      html  css  js  c++  java
  • shell 7输入输出

    1. echo

    echo用于字符串的输出

    1.1. 显示普通字符串

    #!/bin/sh
    echo "Hello world"    #Hello world
    echo Hello world    #Hello world
    

    1.2. 显示转译字符

    #!/bin/sh
    echo ""Hello world""    #"Hello world"
    echo "Hello	world"    #Hello	world
    echo "Hello
    world"    #Hello<br>world
    

    1.3. 使用双引号显示变量,使用单引号原样输出

    #!/bin/sh
    name="cup"
    echo "this is ${cup}"    #this is 
    echo 'this is ${cup}'    #this is ${cup}
    

    1.4. 显示结果定向至文件

    #!/bin/sh
    echo start    #start
    echo "OK! c" > a.txt
    echo "It is a test" >> a.txt
    echo cat a.txt    #cat a.txt
    cat a.txt    #OK! It is a test
    echo rm file    #rm file
    rm -rf a.txt
    

    1.5. 显示命令执行结果

    #!/bin/sh
    echo `date`    #2018年 9月 2日 星期日 23时54分45秒 CST
    

    1.6. Mac中-e参数只在命令行可用,脚本中会当作普通字符串处理

    a 发出警告声
     删除前一个字符
    c 最后不加上换行符号
    f
    v 与f相同
    换行但光标仍旧停留在原来的位置
    换行且光标移至行首
    光标移至行首,但不换行
    插入tab
    插入字符
    nn 插入nnn(八进制)所代表的ASCII字符

    2.printf

    printf使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以指定字符串的宽度、左右对其方式等。printf不会像echo自动添加换行符,因此需要手动添加换行符
    语法:

    printf format-string [arguments...]    
    # format-string:为格式控制字符串
    # arguments:参数列表
    

    常用字符:

    • %s 字符串
    • %d,%i 十进制整数
    • %c ASCII字符。显示相对应参数的第一个字符
    • %e,%E,%f 浮点格式
    • %g %E或%f转换,看哪一个较短,则删除结尾的0
    • %G %E或%f转换,看哪一个较短,则删除结尾的0
    •  后退 f 换页 换行 回车 水平制表符 - 左对齐

    更多参考http://man.linuxde.net/printf,http://www.runoob.com/linux/linux-shell-printf.html

    #!/bin/sh
    #打印普通字符串
    printf "hello	"
    printf "world
    "
    #打印格式化字符串
    printf "%-10s %-8s %-10s %-4s
    " 姓名 性别 绰号 排名
    printf "%-10s %-8s %-10s %-4d
    " 宋江 男 及时雨 1 
    printf "%-10s %-8s %-10s %-4d
    " 吴用 男 智多星 3
    printf "%-11s %-8s %-10s %-4d
    " 卢俊义 男 玉麒麟 2
    

    %-10s 宽度为10的字符串(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符款的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。

    #!/bin/sh
    printf "%-10s %-5s
    " "hello" "apache tomcat"
    printf "%10s %5s
    " "world" "apache tomcat"
    
    #!/bin/sh
    #双引号
    printf "%d %s
    " 1 "abc"
    #单引号和双引号一样
    printf '%d %s
    ' 1 "abc"
    #没有引号也可以输出
    printf %s abcefg
    echo "****"
    #格式只指定了一个参数,但多出的参数仍然可以按照该格式输出
    printf %s abc def
    echo "****"
    printf "%s 
    " abc def
    printf "%s %s %s 
    " a b c d e f g h i j
    #如果没有参数,s用null代替,d用0代替
    printf "%s and %d 
    "
    

    3.read

    read命令用于从键盘或文件中读入信息,可同时给多个变量赋值。如果输入的值的个数多余变量个数,多余的值会赋值给最后一个变量

    read [-option] 变量列表
    

    常用参数:

    • -p 字符串:用于在请求输入之前给出提示信息
    #!/bin/bash
    read name
    echo "name:${name}"
    read -p "please input your name:" yourname
    echo "yourname:${yourname}"
    read -p "please input classmates:" test1 test2 test3
    echo "test1:${test1} test2:${test2} test3:${test3}"
    

    4.tee

    表示将输出的内容同时输出到到指定的文件内,如果想看到输出的同时,把输出也同时考入一个文件,适用tee。经常和管道符号|一起使用

    tee [-option] 文件名
    

    常用参数:

    • -a:将输出的内容追加到指定的文件内容末尾(不覆盖文件原有内容)
    ps -ef|tee proc.info
    
  • 相关阅读:
    ansible的管理与剧本
    条件随机场入门(二) 条件随机场的模型表示
    条件随机场入门(一) 概率无向图模型
    隐马尔科夫模型
    高斯混合模型 GMM
    K-Means 算法
    EM 算法
    Sequential Minimal Optimization (SMO) 算法
    LinkedIn文本分析平台:主题挖掘的四大技术步骤
    SVM 核方法
  • 原文地址:https://www.cnblogs.com/csj2018/p/9576536.html
Copyright © 2011-2022 走看看