zoukankan      html  css  js  c++  java
  • shell脚本的使用该熟练起来了,你说呢?(篇三)

    继续前一篇的文章:

    shell脚本的使用该熟练起来了,你说呢?(篇一)

    shell脚本的使用该熟练起来了,你说呢?(篇二)

    文章里面测试的命令脚本文件,大家关注我公众号后,可以私信我领取文件。

    作者:良知犹存

    转载授权以及围观:欢迎添加微信公众号:羽林君


    shell echo

    Shell echo命令

    Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:

    echo string
    

    您可以使用echo实现更复杂的输出格式控制。

    1.显示普通字符串:

    echo "It is a test"
    //这里的双引号完全可以省略,以下命令与上面实例效果一致
    echo It is a test
    

    2.显示转义字符

    echo ""It is a test""
    

    结果将是:

    同样,双引号也可以省略

    3.显示变量

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

    read
     name echo "$name It is a test"
    

    以上代码保存为hello_shell.sh,name 接收标准输入的变量,结果将是:

    4.显示换行

    echo -e "OK! 
    "   #   -e 开启转义  
    echo "It is a test"
    

    输出结果:

    5.显示不换行

    echo -e "OK! c" # -e 开启转义 c 不换行
    echo "It is a test"
    

    输出结果:

    6.显示结果定向至文件

    echo "It is a test" > lynfile
    

    ./hello_shell.sh 执行脚本,当前目录下就会生成一个 lynfile 文件,里面的内容为It is a test

     

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

    echo '$name"'
    

    输出结果:

    8.显示命令执行结果

    echo `date`
    

    注意: 这里使用的是反引号 `, 而不是单引号 '。

    结果将显示当前日期

    shell printf

    Shell printf 命令

    我们学习了 Shell 的 echo 命令,我们再来学习 Shell 的另一个输出命令 printf。

    printf 命令模仿 C 程序库(library)里的 printf() 程序。

    printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。

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

    printf 命令的语法:

    printf  format-string  [arguments...]
    

    参数说明:

    • format-string: 为格式控制字符串

    • arguments: 为参数列表。

    实例如下:

    echo "echo  Hello, Shell" lyn, actionprintf "printf Hello, Shell
    " lyn, action
    

    接下来,我来用一个脚本来体现printf的强大功能:

    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 
    

    执行脚本,输出结果如下所示:

    更多实例:

    # format-string为双引号printf "%d %s
    " 1 "abc"   # 单引号与双引号效果一样 
    printf '%d %s
    ' 1 "abc"
    # 没有引号也可以输出
    printf %s abcdef
    printf "
    "
    # 格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用
    printf %s abc def
    printf "
    "
    printf "%s
    " abc def
    printf "
    "
    printf "%s %s %s
    " a b c d e f g h i j
    printf "
    "
    # 如果没有 arguments,那么 %s 用NULL代替,%d 用 0 代替
    printf "%s and %d 
    "
    

    执行脚本,输出结果如下所示:


    printf的转义序列

    序列说明
    a 警告字符,通常为ASCII的BEL字符
     后退
    c 抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略
    f 换页(formfeed)
    换行
    回车(Carriage return)
    水平制表符
    v 垂直制表符
    一个字面上的反斜杠字符
    ddd 表示1到3位数八进制值的字符。仅在格式字符串中有效
    ddd 表示1到3位的八进制值字符

     

    实例

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

    输出结果为:

    shell  文件包含

    Shell 文件包含

    和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件。

    Shell 文件包含的语法格式如下:

    . filename   # 注意点号(.)和文件名中间有一空格
    或
    source filename
    

    实例

    创建两个 shell 脚本文件。

    url.sh 代码如下:

    #!/bin/bash
    
    
    url="http://www.baidu.com"
    

    url_read.sh 代码如下:

    #!/bin/bash
    
    
    #使用 . 号来引用url.sh 文件
    #. ./url.sh
    
    
    # 或者使用以下包含文件代码
     source ./url.sh
    
    
    echo "官网地址:$url"
    

    接下来,我们为 url_read.sh 添加可执行权限并执行:

    注:被包含的文件 url.sh 不需要可执行权限。

    这就是我分享的shell脚本,其中参考了很多人的文章,如果大家有什么更好的思路,也欢迎分享交流哈。

    —END

    推荐阅读

    【1】C++的智能指针你了解吗?

    【2】嵌入式底层开发的软件框架简述 
    【3】CPU中的程序是怎么运行起来的 必读
    【4】C++的匿名函数(lambda表达式)
    【5】阶段性文章总结分析

    本公众号全部原创干货已整理成一个目录,回复[ 资源 ]即可获得。

    更多分享,扫码关注我

    参考链接:

    https://www.runoob.com/linux/linux-shell-variable.html

  • 相关阅读:
    在DOS的常用命令
    HTML中USEMAP的用法
    asp.net2.0角色管理,详细步骤
    利用ASP.NET动态生成HTML文件
    PetShop 4.0 详解之五(PetShop之业务逻辑层设计)
    使用成员资格和用户登录创建网站 (Visual Studio)
    Windows 找不到文件'(null)'.请确定文件名是否正确后,再试一下.要搜索文件,请单击[开始]按钮,然后单击"搜索"
    在ashx文件中读写session
    asp.net图片滚动+JAVASCRIPT(向右)
    动态编辑程序配置文件
  • 原文地址:https://www.cnblogs.com/conscience-remain/p/14124520.html
Copyright © 2011-2022 走看看