zoukankan      html  css  js  c++  java
  • shell命令输出

    在shell脚本中的打印输出通常会有echo和printf两种,前者会自动换行。

    一、echo

    Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。您可以使用echo实现更复杂的输出格式控制。

    1.显示普通字符串:

    [root@localhost ~]# echo "It is a test"
    It is a test
    [root@localhost ~]# echo It is a test
    It is a test

     2.显示转义字符

    [root@localhost ~]# echo ""It is a test""
    "It is a test"

    3.显示变量

    [root@localhost ~]# name=”OK”
    [root@localhost ~]# echo “$name It is a test”
    “”OK” It is a test”
    [root@localhost ~]# echo $name It is a test
    ”OK” It is a test
    [root@localhost ~]# 

    以下的转义字符都可在echo中使用

    转义字符

    含义

    \

    反斜杠

    a

    警报,响铃

    

    退格(删除键)

    f

    换页(FF),将当前位置移到下页开头

    换行

    回车

    水平制表符(tab键) 

    v

    垂直制表符

    echo

    -e开启转义

    -E禁止转义,默认也是不转义的

    4、read

    read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量。

    [root@localhost ~]# cat echo_var.sh 
    #!/bin/sh
    read name 
    echo "$name It is a test"
    [root@localhost ~]# chmod 755 echo_var.sh 
    [root@localhost ~]# 
    [root@localhost ~]# ./echo_var.sh 
    var1
    var1 It is a test

    5、显示结果定向至文件

    [root@localhost ~]# echo "It is a test" > myfile
    [root@localhost ~]# 
    [root@localhost ~]# cat myfile 
    It is a test

    6、原样输出字符串,不进行转义或取变量(用单引号)

    [root@localhost ~]# echo '$name"'
    $name"

    7、显示命令执行结果

    反引号

    [root@localhost ~]# echo `date`
    Mon Mar 25 22:07:23 CST 2019

    二、printf

    printf 命令用于格式化输出,是echo命令的增强版。

    printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认printf不会像 echo 自动添加换行符,我们可以手动添加换行符 。

    [root@localhost ~]# echo "Hello, Shell"
    Hello, Shell
    [root@localhost ~]# printf "Hello, Shell
    "
    Hello, Shell

    格式替代符:

    %b 相对应的参数被视为含有要被处理的转义序列之字符串。

    %c ASCII字符。显示相对应参数的第一个字符

    %d, %i 十进制整数

    %e, %E, %f 浮点格式

    %g %e或%f转换,看哪一个较短,则删除结尾的零

    %G %E或%f转换,看哪一个较短,则删除结尾的零

    %o 不带正负号的八进制值

    %s 字符串

    %u 不带正负号的十进制值

    %x 不带正负号的十六进制值,使用a至f表示10至15

    %X 不带正负号的十六进制值,使用A至F表示10至15

    %% 字面意义的%

    三、test

    test 命令是Shell环境中测试条件表达式的使用工具,用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

    1、数值测试

    参数

    说明

    -eq

    等于则为真

    -ne

    不等于则为真

    -gt

    大于则为真

    -ge

    大于等于则为真

    -lt

    小于则为真

    -le

    小于等于则为真

    实例:

    [root@localhost ~]# vi test.sh 
    #!/bin/bash
    num1=100
    num2=100
    if test $[num1] -eq $[num2]
    then
        echo '两个数相等!'
    else
        echo '两个数不相等!'
    fi
    [root@localhost ~]# chmod 755 test.sh 
    [root@localhost ~]# 
    [root@localhost ~]# ./test.sh 
    两个数相等!

    2、字符串测试

    参数

    说明

    =

    等于则为真

    !=

    不相等则为真

    -z 字符串

    字符串的长度为零则为真

    -n 字符串

    字符串的长度不为零则为真

    实例:

    [root@localhost ~]# vi test1.sh
    #!/bin/bash
    num1="ru1noob"
    num2="wiki"
    if test $num1 = $num2
    then
        echo '两个字符串相等!'
    else
        echo '两个字符串不相等!'
    fi
    [root@localhost ~]# chmod 755 test1.sh 
    [root@localhost ~]# 
    [root@localhost ~]# ./test1.sh 
    两个字符串不相等!

    3、文件测试

    参数

    说明

    -e 文件名

    如果文件存在则为真

    -r 文件名

    如果文件存在且可读则为真

    -w 文件名

    如果文件存在且可写则为真

    -x 文件名

    如果文件存在且可执行则为真

    -s 文件名

    如果文件存在且至少有一个字符则为真

    -d 文件名

    如果文件存在且为目录则为真

    -f 文件名

    如果文件存在且为普通文件则为真

    -c 文件名

    如果文件存在且为字符型特殊文件则为真

    -b 文件名

    如果文件存在且为块特殊文件则为真

    [root@localhost ~]# vi test2.sh
    #!/bin/bash
    cd /bin
    if test -e ./bash
    then
        echo '文件已存在!'
    else
        echo '文件不存在!'
    fi
    [root@localhost ~]# chmod 755 test2.sh 
    [root@localhost ~]# 
    [root@localhost ~]# ./test2.sh 
    文件已存在!

    4、条件测试

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

     实例

    [root@localhost ~]# vi test3.sh
    #!/bin/bash
    cd /bin
    if test -e ./notFile -o -e ./bash
    then
        echo '有一个文件存在!'
    else
        echo '两个文件都不存在'
    fi
    [root@localhost ~]# chmod 755 test3.sh 
    [root@localhost ~]# 
    [root@localhost ~]# ./test3.sh 
    有一个文件存在!

    end

  • 相关阅读:
    iOS 设置app语言中文,比如 copy中文,拍照按钮cancel 中文
    kCGImagePropertyExifDictionary 引用错误
    Objective-C中3种枚举比较及KVC两个小技巧
    xcode 调试程序 lldb 使用
    iOS kvo 结合 FBKVOController 的使用
    ios 推送app badge 数字累加操作
    推送未找到应用程序的“aps-environment”的权利字符串错误
    AVAudioPlayer播放在线音频文件
    MPMoviePlayerViewController 视频播放黑屏
    PHP 与 Redis 入门教程
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/10592738.html
Copyright © 2011-2022 走看看