博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串子串
阅读量:6117 次
发布时间:2019-06-21

本文共 1670 字,大约阅读时间需要 5 分钟。

  hot3.png

定义变量$string=”this_is_a_test”

    ${#string} : 取字符串长度,空格也算

 

    ${string:position} : 从positon处提取字符串,positon0开始.也可以认为是提取postion之后字符串,不算position处

 

    ${string:position:length} : 从position位置处取length长的字符串.也可以 echo ${string} | cut –c 1-4,取1-4的字符,1为第一个

 

    ${string#substring} : 返回从变量开头开始删除最短匹配substring子串后的字符串

    echo${string#thi}       ->     s_is_a_test   (看似没有问题)

    echo${string#is_is} ->     this_is_a_test(中间子串不行)

    echo${string#*is_is}    ->     _a_test(*很重要)

    由此可以知道这种方法会删除substring及其前所有字符串,或者说只返回其后的字符串

    下例更清晰:

    echo${string#*_}    ->     is_a_test

   

 

${string##substring} : 返回从变量开头开始删除最长匹配substring子串后的字符串

    echo${string##*_}       ->     test

   

${string%substring} : 返回从变量结尾开始删除最短匹配substring子串后的字符串

    echo${string%test}      ->     this_is_a_(只要是末尾的可不用*)

    echo${string%te}    ->     this_is_a_test(不行)

    echo${string%_*}    ->     this_is_a

   

${string%%substring} : 返回从变量结尾开始删除最长匹配substring子串后的字符串

    echo ${string%%_*}   ->     this                              

    ${string/substring/newstring}:第一个substring替换为newstring

       echo${string/is/are}    -> thare_is_a_test

   

    ${string//substring/newstring} :所有substring替换为netstring

       echo${string//is/are}      ->  thare_are_a_test

替换也可以加#或%

   

    ${string:-newstring} : 如果string为空值或未定义,返回newstring

否则返回string。

    echo${aaa:-test}    ->     test                           

 

    ${string:=newstring} : 如果string为空值或未定义,返回newstring

并将newstring赋值给string;否则返回string。可防止变量没有定义

    echo${aaa:=test}    ->     test

    echo$aaa                ->     test

 

${string:+newstring} : 如果string为空值或未定义,则返回空;如果string不为空,返回newstring

echo ${aaa:+test}    ->     空  (aaa为空值或未定义)

echo ${aaa:+test}    ->     test(aaa存在且不为空值)

 

${string:?newstring} : 如果string为空值或未定义,则将newstring写入标准错误输出流,本次执行失败;否则返回string

echo ${aaa:?newstring} ->bash: aaa: test(aaa不存在或为空值)

    echo $?    -> 1

echo ${aaa:?newstring} ->aaa   (aaa值为aaa)

 

$((算术表达式))   :   返回表达式的结果

echo $((70-23))          ->  47

转载于:https://my.oschina.net/cqslpxzzp/blog/382188

你可能感兴趣的文章
CSS 颜色代码大全
查看>>
使用JavaScript开发跨平台的桌面应用
查看>>
PHP设置图片文件上传大小的具体实现方法
查看>>
Metro Studio 图片定制
查看>>
oracle字段由中文前缀加数字,数字自动增长的实现
查看>>
metasploit 连接database相关问题
查看>>
深入理解Lustre文件系统-第11篇 Lustre一般化文件系统封装层:fsfilt
查看>>
20155224 2016-2017-2 《Java程序设计》第6周学习总结
查看>>
个人代码库の迅雷7动态图标按钮模拟
查看>>
MapWindowPoints(HWND hWndFrom, HWND hWndTo,LPPOINT lpPoints, UINT cPoints);
查看>>
listview加载性能优化ViewHolder
查看>>
QT 5.1 MainWindow 与 QWebview 如何通信
查看>>
一个物体多个标签的问题
查看>>
Oracle集合
查看>>
Bypass_Disable_functions_Shell
查看>>
《机器学习实战》线性回归
查看>>
makedown语法
查看>>
读书笔记之:C++精髓·软件工程[-]
查看>>
Javascript模块化编程之难处
查看>>
Python字符串的encode与decode
查看>>