zoukankan      html  css  js  c++  java
  • Bash 内置高效特性

    • 变量(字符串)变换
    定义一个变量t,内容为framE
    [root@vm1 tmp]# t=framE
     
    查看变量t的内容:echo $t或者是echo ${t}
    [root@vm1 tmp]# echo $t
    framE
    [root@vm1 tmp]#
     
    将变量t的首字母大写:echo ${t^}
    [root@vm1 tmp]# echo ${t^}
    FramE
    [root@vm1 tmp]# 
     
    将变量t的所有字母大写:echo ${t^^}
    [root@vm1 tmp]# echo ${t^^}
    FRAME
    [root@vm1 tmp]# 
     
    将变量t的首字母小写:echo ${t,}
    [root@vm1 tmp]# echo ${t,}
    framE
    [root@vm1 tmp]#
     
    将变量t的所有字母小写:echo ${t,,}
    [root@vm1 tmp]# echo ${t,,}
    frame
    [root@vm1 tmp]# 
     
    将变量t的首字母大小写切换:echo ${t~}
    [root@vm1 tmp]# echo ${t~}
    FramE
    [root@vm1 tmp]#
     
    将变量t的所有字母大小写切换:echo ${t~~}
    [root@vm1 tmp]# echo ${t~~}
    FRAMe
    [root@vm1 tmp]# 
     
    总结:
     
    ^:首字母大写
    ^^:所有字母大写
    ,:首字母小写
    ,,:所有字母小写
    ~:首字母大小写切换
    ~~:所有字母大小写切换
    • 移除匹配的字符串
    定义一个变量filename,该变量的值为pwd所对应的当前路径
    [root@vm1 network-scripts]# filename="$(pwd)"
    [root@vm1 network-scripts]# echo $filename
    /etc/sysconfig/network-scripts
    [root@vm1 network-scripts]# 
     
    从前往后删,删除掉最短的一个"/"
    [root@vm1 network-scripts]# echo ${filename#*/}
    etc/sysconfig/network-scripts
    [root@vm1 network-scripts]# 
     
    从前往后删,删除掉最长的一个"/"
    [root@vm1 network-scripts]# echo ${filename##*/}
    network-scripts
    [root@vm1 network-scripts]# 
     
    从后往前删,删除掉最短的一个"/"
    [root@vm1 network-scripts]# echo ${filename%/*}
    /etc/sysconfig
    [root@vm1 network-scripts]# 
     
    从后往前删,删除掉最短的一个"/"
    [root@vm1 network-scripts]# echo ${filename%%/*}
     
    [root@vm1 network-scripts]# 
     
     
     
    #:从前往后删,删除掉最短的一个
    ##:从前往后删,删除掉最长的一个
    %:从后往前删,删除掉最短的一个
    %%:从后往前删,删除掉最长的一个
    • 查找与替换
    查看变量filename的内容:
    [root@vm1 network-scripts]# echo $filename
    /etc/sysconfig/network-scripts
    [root@vm1 network-scripts]#
     
    将第一次出现的小写s替换成大写的S
    [root@vm1 network-scripts]# echo ${filename/s/S}
    /etc/Sysconfig/network-scripts
    [root@vm1 network-scripts]#
     
    将所有的小写s替换成大写的S
    [root@vm1 network-scripts]# echo ${filename//s/S}
    /etc/SySconfig/network-ScriptS
    [root@vm1 network-scripts]# 
     
    总结:
    /match/value:将第一次出现的match地换成value
    //match/value:将所有的match替换成value
    • 其他字符串的操作符
    查询字符串的长度:echo {#filename}
    [root@vm1 network-scripts]# echo ${#filename}
    30
    [root@vm1 network-scripts]# 
     
    字符串切片操作:${filename:offset:length}  offset从0开始
    [root@vm1 network-scripts]# echo ${filename:5:9}
    sysconfig
    [root@vm1 network-scripts]#

    原始出处:http://hezhanglinux.blog.51cto.com/10861477/1711388

  • 相关阅读:
    使用Ruby On Rails建立一个山寨小说站(一)
    sql server 数据库备份概述
    JVM崩溃的原因及解决!
    C++中的字节对齐
    jqueyr用jsonp跨越,有服务器端代码(.net(C#语言))
    lammps_data文件
    jquery日历插件_时间范围_双日历_多日历
    js 判断所选时间(或者当前时间)是否在某一时间段
    webstorm安装时遇到The JVM could not be started的解决方法
    Webstorm快捷键
  • 原文地址:https://www.cnblogs.com/chenjinxi/p/7515333.html
Copyright © 2011-2022 走看看