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

  • 相关阅读:
    GeoMesa Java API-写入与查询数据
    GeoMesa命令行,索引概述
    HBase,以及GeoMesa设计基于HBase的设计分析,从数据模型到典型查询场景,最后进行RowKey设计
    笔趣看小说Python3爬虫抓取
    python网络爬虫
    Kafka客户端Producer与Consumer
    ScalikeJDBC,操作mysql数据,API
    mysqldb
    Python 反射
    Go 类型转换
  • 原文地址:https://www.cnblogs.com/chenjinxi/p/7515333.html
Copyright © 2011-2022 走看看