bash shell parameter expansion

1 ${parameter%word}和${parameter%%word}

${parameter%word},word是一个模式,从parameter这个参数的末尾往前开始匹配。单个%进行最短匹配,也就是说,从后往前匹配,遇到了匹配成功立马停止。

${parameter%%word},word是一个模式,从parameter这个参数的末尾往前开始匹配。双%进行最长匹配,也就是说,从后往前匹配,遇到了匹配继续匹配,一直匹配到开头,找到最长的匹配。

path=/home/mem/long.file.name

${path%.*}    ---->  /home/mem/long.file

${path%%.*} ---->  /home/mem/long

2 ${parameter#word}和${parameter##word}

和%的区别在于,#是从parameter的开头往后匹配,也是留下不匹配的部分。另外,当个#也是最短匹配,而双#是最长匹配。

时间: 2024-12-07 17:00:56

bash shell parameter expansion的相关文章

Shell parameter expansion

使用sh写一些小型的脚本会使工作更加简单.有部分内容可能大家都比較陌生(至少我是这样). 就是变量有关的參数展开,以下就是一些简单的描写叙述和使用方法.能够使代码更加简洁 展开运算符 替换运算 ${varname:-word} var exist & not null,return value ,else return word ${varname:=word}  var exist & not null,return value, else varname=word & retu

Linux Shell参数扩展(Parameter Expansion)

本文主要参考:http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02 其他资料:http://www.ibm.com/developerworks/cn/linux/l-bash-parameters.html 参数扩展的表示形式为:${expression}.expression包括各种字符直到匹配上'}'.当出现以下情况时候'}'不会被检查来匹配: 1)在转义字符\之后,如\{

bash Shell 总结

man bash 1. shell 的工作原理 (1) 内核 <---> shell <---> 用户 父进程 fork --> wait 子进程 exec --> exit 相关man文档: fork(2) clone(2) execve(2) exit_group(2) exit4(2) strace(1) -->strace -e 2. shell 语法 (2) 1. 简单命令 (kw: Simple Commands) 基本形式:command [arg]

第4章 更多的bash shell命令

Monitoring Programs Peeking at the processes When a program runs on the system, it’s referred to as a process. To examine these processes, you need to become familiar with the ps command, the Swiss Army knife of utilities. It can produce lots of info

Bash Shell 中的特殊字符

什么是Bash Shell中的特殊字符?某些特殊字符在Bash Shell里不是表示其字符含义本身,而是另有含义,称为:meta-meaning. 1.字符:# 代表注释,如果有一行以#开始,那么意味着这行不会被执行,只是一行说明注释. 例如: # this is comments 这是一行注释. 但是这里有个例外,那就是脚本的第一行我们经常看到的: #!/bin/bash 这个指示一个脚本的解释器,说明这个脚本是由/bin/bash 来解释的. 从#为开始,后面的字符即为注释,直到该行结束.体

在Bash shell脚本编程中,如何正确无误获取到“脚本选项参数”和“脚本参数”呢?

Linnux 中有些命令的功能非常强大,主要是因为它支持的命令选项比较多.如:[ip]命令可以配置IP地址.路由条目的配置管理操作非常完善,该命令就可以完成[ifconfig]和[route]命令实现的所有功能.函数是单独的功能模块,如果函数能够接收选项参数,那么该函数的功能就变得丰富,且灵活.脚本也是一样. 那么linux中命令的格式又是怎么样的呢? [[email protected] ~]# command   [optons parameter1 | parameter2]...  pa

bash shell学习 01(配置和启动脚本)

bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来 查看当前shellecho $SHELL查看系统支持的shellcat /etc/shells cd /binls -la *sh 一. bash shell的配置变量可分为自定义变量和环境变量他们作用范围不同set 可以查看所有变量set|more 查看 enter一行一行查看set|less enter换行 pagedown换页 q退出 env只能查看环境变量 bash shell的设置方式1.通过自定义变

Bash shell 的算术运算有四种方式

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1:使用 expr 外部程式加法 r=`expr 4 + 5`echo $r注意! '4' '+' '5' 这三者之间要有空白r=`expr 4 * 5` #错误乘法 r=`expr 4 \* 5`~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2:使用 $(( ))r=$(( 4 + 5 ))echo $r~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3:使用 $[ ]r=$[ 4 + 5

第3章 基本的bash shell命令

启动shell GNU bash shell提供对Linux系统交互式访问.他以常规程序运行,通常在用户登录终端时启动.登录时具体启动那种shell依据用户配置文件/etc/passwd . /etc/passwd 包含所有系统用户账户列表以及每个用户的基本信息.eg:其中一个条目 christine:x:501:501:Christine Bresnahan:/home/christine:/bin/bash 说明: 每个条目有7个字段,字段之间用冒号“:”分隔 用户名 用户密码(如果密码存储