• Shell脚本编程之Shell命令


    1.Shell echo命令

    (1)Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出

    #!/bin/bash
    
    #Shell echo
    
    #显示普通字符串
    echo "It is a test"
    echo It is a test
    
    #显示转义字符
    echo ""It is a test""
    
    #显示变量
    read name
    echo "$name It is a test"
    
    #显示换行
    echo -e "OK! 
    " 
     #-e 开启转义
    echo "It is  a test"
    
    #显示不换行
    echo -e "OK! c" 
     #-e 开启转义 c 不换行
    echo "It is a test"
    
    #显示结果定向至文件
    echo "It is a test" > myfile
    
    #原样输出字符串,不进行转义或取变量(用单引号)
    echo '$name"'
    
    #显示命令执行结果
    echo `date`

    运行结果:

    ***read命令:一个一个词组地接收输入的参数,每个词组需要使用空格进行分隔;如果输入的词组个数大于需要的参数个数,则多出的词组将被作为整体为最后一个参数接收;

    read命令:从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY

    参数说明:

    •  -p 输入提示文字
    •  -n 输入字符长度限制(达到6位,自动结束)
    •  -t 输入限时
    •  -s 隐藏输入内容

    read命令实例:

    #!/bin/bash
    read -p "请输入一段文字:" -n 6 -t 5 -s password
    echo  "
    password is $password"

    运行结果:

    2.Shell printf命令:

    #shell printf
    echo "Hello,shell"
    printf "Hello,shell
    "
    
    printf "%-10s %-8s %-4s
    " 姓名 性别 体重kg
    printf "%-10s %-8s %-4.2f
    " 郭靖 男 66.1234
    printf "%-10s %-8s %-4.2f
    " 杨过 男 48.6543
    printf "%-10s %-8s %-4.2f
    " 郭芙 女 47.9876
    
    #%s %c %d %f都是格式替代符
    
    #%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示>在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
    
    #%-4.2f 指格式化为小数,其中.2指保留2位小数
    
    #format-string为双引号
    printf "%d %s
    " 1 "abc"
    
    #单引号与双引号效果一样 
    printf '%d %s
    ' 1 "abc"
    
    #没有引号也可以输出
    printf %s abcdef
    
    #格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用
    printf %s abc def
    
    printf "%s
    " abc def
    
    printf "%s %s %s
    " a b c d e f g h i j
    
    #如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替
    printf "%s and %d 
    "

     运行结果:

    3.printf的转义序列:

    printf的转义序列实例:

    printf "a string,no processing:<%s>
    " "A
    B"
    
    printf "a string,no processing:<%b>
    " "A
    B"
    
    printf "www.cnblog.com a"

    运行结果:

    4.Shell test命令:test命令用于检查某个条件是否成立,它可以进行数值,字符和文件三个方面的测试

    (1)数值测试

    数值测试实例:

    num1=100
    num2=200
    if test $[num1] -eq $[num2]
    then
     echo '两个数相等!'
    else
     echo '两个数不相等!'
    fi
    
    a=5
    b=6
    
    result=`expr $a + $b`
    echo "result 为: $result"

     运算结果:

    (2)字符串测试:

    字符串测试实例:

    num1="ru1noob"
    num2="runoob"
    if test $num1 = $num2
    then
      echo "两个字符串相等!"
    else
      echo "两个字符串不相等!"
    fi

    运行结果:

    (3)文件测试:

    文件测试实例:

    cd /bin
    if test -e ./bash
    then
     echo '文件已存在!'
    else
     echo '文件不存在!'
    fi

    运行结果:

    Shell还提供了与( -a )、或( -o )、非( ! )三个逻辑操作符用于将测试条件连接起来,其优先级为:"!"最高,"-a"次之,"-o"最低

    cd /bin
    if test -e ./notFile -o -e ./bash
    then
     echo '至少有一个文件存在!'
    else
     echo '两个文件都不存在'
    fi

    运行结果:

  • 相关阅读:
    指针与数组关联导致的一些现象 分类: H_HISTORY 20130211 20:14 516人阅读 评论(0) 收藏
    宏定义一些内容 分类: H_HISTORY 20130207 23:20 585人阅读 评论(0) 收藏
    使用lstat()判断文件类型 分类: H_HISTORY 20130224 11:48 703人阅读 评论(0) 收藏
    关于VMware虚拟机的上网 分类: C_OHTERS 20130220 14:36 336人阅读 评论(0) 收藏
    Segmentation fault (core dumped) 分类: H_HISTORY 20130206 11:34 18800人阅读 评论(0) 收藏
    C语言内存分配时间 分类: H_HISTORY 20130211 10:51 1432人阅读 评论(3) 收藏
    GTK+与QT的对比 分类: H_HISTORY 20130205 09:27 3101人阅读 评论(0) 收藏
    枚举作为整数 分类: H_HISTORY 20130208 11:22 576人阅读 评论(0) 收藏
    01背包问题,动态规划求解
    求两个字符串的相似度或子串
  • 原文地址:https://www.cnblogs.com/hqutcy/p/8656662.html
Copyright © 2020-2023  润新知