很奇怪的一点这些命令使用的时候竟然都没有$符号,所以感觉很怪的:
${#var}
返回var这个变量的长度
${var%pattern}
removes the shortest suffix of $var patching pattern
从后面开始去掉最短正则表达式匹配串
datapath=/data/public/project/trials/set1/datafile.dat
echo ${datapath%\/*.*}
返回空行 /data/public/project/trials/set1
${var%%pattern}
removes the longest suffix of $var patching pattern
从后面开始去掉最长正则表达式匹配串
datapath=/data/public/project/trials/set1/datafile.dat
echo ${datapath%%\/*.*}
返回空行
${var#pattern}
removes the shortest prefix of $var patching pattern
从前面开始去掉最短正则表达式匹配串
datapath=/data/public/project/trials/set1/datafile.dat
echo ${datapath#/*/}
返回public/project/trials/set1/datafile.dat
${var##pattern}
removes the longest prefix of $var patching pattern
从前面开始去掉最长正则表达式匹配串
datapath=/data/public/project/trials/set1/datafile.dat
echo ${datapath##*.}
返回dat
最后补充一点,在shell脚本文件中使用时,你不必使用``命令,直接赋值就是了:
name=20081104.key
ext=`${name##*.}`
就会报错,说key不能执行什么的,当然,扩展名key也没有赋值给ext
这样就对了
name=20081104.key
ext=${name##*.}
分享到:
相关推荐
- **字符串操作符**:如连接、截取等操作。 ### 6. 条件结构 - **if语句**:用于基于某个条件执行代码块。 - **case语句**:用于基于匹配模式执行代码块。 - **select语句**:用于创建简单的菜单。 ### 7. 循环...
- 支持复杂的脚本编程,包括流程控制结构、字符串处理等功能。 - 具有Bourne Shell和C Shell的优点,同时添加了许多新的特性。 #### 三、Shell命令与脚本 - **命令**:用户通过命令行接口输入的指令,用于执行...
#### 2.4 字符串截取 可以使用`${string%%suffix}`或`${string##prefix}`来去除字符串的前缀或后缀。例如: ```bash str="http://www.example.com" echo "${str##*/}" # 输出:example.com ``` #### 2.5 变量状态...
例如,截取字符串的前五个字符,可以使用`expr substr`、`cut -c`或`awk 'substr()'`。此外,`cut`还可以用于按分隔符分割字符串并提取特定列。字符串替换则可以借助`sed`的`s/old/new/g`模式,或者`awk`的`gsub()`...
2. 字符串处理:Shell脚本中常常需要处理字符串,例如获取字符串长度、字符串切片、替换字符串、截取子串等。Shell提供了丰富的字符串操作功能。 3. 表达式与运算符:Shell脚本支持条件表达式、比较符(包括整数...
还会讲解变量的引用(如`$var`)和字符串操作,如截取、连接等。 3. **条件语句与循环**:讲解`if`、`else`、`elif`用于条件判断,以及`for`、`while`、`until`等循环结构。这些是编写逻辑控制的重要组成部分。 4....
变量运算包括算术运算和字符串运算,常见的运算符有+、-、*、/等,以及比较运算符如==、!=等。$*和$@的区别在于处理多个参数时,前者将所有参数视为一个整体,后者则每个参数单独处理。 三、输入与输出 read命令...