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

  • 相关阅读:
    linux服务篇
    降智比赛题解
    CF 1437 题解
    ZR 2020普转提七连测day5
    20联赛集训day11 题解
    contest5 题解
    20联赛集训day9 题解
    20联赛集训day8 题解
    contest4 题解
    20联赛集训day7 题解
  • 原文地址:https://www.cnblogs.com/chenjinxi/p/7515333.html
Copyright © 2011-2022 走看看