首先看脚本:

#!/bin/shfunction func
{flag=${@: -1}echo "flag=${flag}"
}func $@

咋一看脚本里有一行:flag=${@: -1} 还真看不出来是什么意思 ,借此机会就当学习一下了。

在shell 中字符串的截取格式是这样的:

${string:start:length}

意思为将 string 从 start 开始截取 length 个字符,然后返回,length 如果省略则截取到字符串末尾。如:

#!/bin/shfor name in `ls`
dofile=${name:2}echo "${file}"
done

脚本很简单,把 ls 的结果用为 for 的参数,然后对每个参数从第 2 个字符开始截取到末尾,结果如下:

cut.sh  export  find  kill_app.sh  string 都被截取成了对应的字符串,还可以截取指定长度,这里不再讲述。

以上截取是从左到右进行计数的,而要从右到从进行计数来截取呢,格式如下:

${string: -start:length}

注意冒号后面跟一个空格,然后才是负号。如:

#!/bin/shfor name in `ls`
dofile=${name: -3}echo "${file}"
done

从右计数 3 个字符,然后截取其后的字符串进行返回,其结果为:

注意:无论是从左往右,还是从右往左计数,子串都是从左往右截取。

我们再回到开头提到的语句:flag=${@: -1}

此句意为 取参数列表的最后一个参数,因为@代表的就是参数列表。

#!/bin/shfunction func
{flag=${@: -1}echo "flag=${flag}"
}func $@

脚本定义了一个函数,然后用命令行的参数列表来调用函数,结果如何呢?

shell 截取最后一个参数及字符截取相关推荐

  1. shell中判断一个参数是否为整型

    shell中判断一个参数是否为整型 判断参数是否为整型 #!/bin/bashfunction IntTest() {for argdo#算术运算符,当参数为整型数字时,执行失败(( $arg )) ...

  2. html实现字段截取,实现espcms系统cuthtml字符截取

    昨天无忧主机小编有给大家介绍过怎么截取espcms建站系统里面的字符内容,但是后台有使用无忧PHP虚拟主机的用户反映cutstr标签无法截取字符串,所以今天无忧主机小编再来给大家介绍另一种字符截取的方 ...

  3. thinkphp字符截取函数msubstr()

    ThinkPHP有一个内置字符截取函数msubstr()如下: msubstr($str, $start=0, $length, $charset="utf-8″, $suffix=true ...

  4. php中msubstr,PHP学习:thinkphp中字符截取函数msubstr()用法分析

    <PHP学习:thinkphp中字符截取函数msubstr()用法分析>要点: 本文介绍了PHP学习:thinkphp中字符截取函数msubstr()用法分析,希望对您有用.如果有疑问,可 ...

  5. python中文字符截取乱码

    python学习中 python中关于中文字符串截取的问题:中文字符截取乱码 在python中一个中文字符占三个英文字符,看以下代码: print str[0:6] #截取啤酒两个中文字符,需要从0开 ...

  6. java根据一个 号截取_java截取最后一个号前的字符串

    java截取最后一个号前的字符串 [2021-01-31 02:35:59]  简介: php中文字符串截取乱码的解决办法:首先创建一个PHP示例文件:然后定义一个"utf_substr&q ...

  7. Shell编程——字符截取命令

    字符截取命令 一.cut 格式: cut [选项] 文件名 参数: -f 列号: 提取第几列 -d 分隔符: 按照指定分隔符分割列 我们来演示一下,我们先建立一个文件,student.txt: ID ...

  8. 取最后一个字符 oracle,oracle截取最后一个字符

    简单明了实用,废话不多说: select substr('a,',2,1) from dual; substr('要截取的字符',字符的长度,字符长度-1) 延伸: select substr(t.p ...

  9. 截取最后一个下划线前面的字符

    截取最后一个下划线前面的字符 [javascript] view plaincopy var   str=test_order_zhang_201703222332; var laststr=str. ...

最新文章

  1. win10右键闪退到桌面_【雷粉百科】windows10鼠标点击右键出现卡顿或者转圈
  2. mysql查询时给字段加内容,mysql数据库查询之对应库对应表中的注释信息查询以及加字段查询...
  3. linux 搭建mysql主从复制 ----第一篇
  4. python在匿名函数作和_跟光磊学Python开发-匿名函数函数和高阶函数
  5. [html] 如何优化页面的渲染过程?
  6. matlab中instr,MATLAB 串口通信
  7. python可以实现的功能_Python 实现某个功能每隔一段时间被执行一次的功能方法...
  8. (25)软件工程开发规范
  9. 远离魔咒,见微知著,打造崭新的罗浮宫
  10. 城市智能公交管理系统方案
  11. 宝峰c1对讲机写频软件_宝峰对讲机写频软件
  12. 处理UNICODE下【中文乱码】异常
  13. unity 截图/图片保存到手机相册
  14. 深入了解机器学习 (Descending into ML):训练与损失
  15. freeswitch mrcp 源码分析--数据接收(上)
  16. 基于数字孪生的智慧城市
  17. 【历史上的今天】3 月 28 日:EPROM 的发明者出生;计算机进入艾滋病研究领域
  18. view_video.php,Android_Android使用VideoView播放本地视频和网络视频的方法,1、效果展示2、布局文件- phpStudy...
  19. 服务器cpu 爆满问题排查
  20. STEM图像模拟软件QSTEM入门教程-测试狗

热门文章

  1. python小猴子摘桃子的故事_基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
  2. Struts2 Action 与Spring bean 作用域
  3. 计算机无法切换用户,Win10微软账户无法切换Administrator本地帐户的解决方法
  4. 18款月流水千万国产手游的来龙去脉
  5. 翌加:抖音小店五种重要的推广方式
  6. “南通大学教务管理系统微信公众号” 用户体验分析
  7. ctp java_上期CTP 封装JAVA API window Swig
  8. mate8鸿蒙,比安卓速度快60%?华为鸿蒙OS或8月9日亮相
  9. mysql create table select from_mysql create table select复制表结构和数据实例讲解
  10. Apple Developer Registration and DUNS Number Not Accepted