Shell中#*/和%/*是什么意思?
2014-11-05 15:29
369 查看
shell中有许多奇特的语法:
比如有以下一段脚本;
#!/bin/sh
files=`find -name *.conifg`
for i in $files
do
name=${i#*/}
dir=${name%/*}
done
name和dir都代表什么呢?
假如
i=this/is/a/path.config
那么
name=is/a/path.config
dir=this/is/a
也就是说%/*代表取从头到最后一个slash之前的所有内容
#*/代表去取从第一个slash之后的所有内容
为了更好的理解,我们看一下具体的文档,可参考Advanced Bash-Scripting Guide一书:
${string#substring}Strip shortest match of $substring from front of $string
${string%substring}Strip shortest match of $substring from back of $string
也就是说
#代表删除从前往后最小匹配的内容
%代表删除从后往前最小匹配的内容
这样明白了吧。
原文:http://blog.csdn.net/hongchangfirst/article/details/28436947
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
比如有以下一段脚本;
#!/bin/sh
files=`find -name *.conifg`
for i in $files
do
name=${i#*/}
dir=${name%/*}
done
name和dir都代表什么呢?
假如
i=this/is/a/path.config
那么
name=is/a/path.config
dir=this/is/a
也就是说%/*代表取从头到最后一个slash之前的所有内容
#*/代表去取从第一个slash之后的所有内容
为了更好的理解,我们看一下具体的文档,可参考Advanced Bash-Scripting Guide一书:
${string#substring}Strip shortest match of $substring from front of $string
${string%substring}Strip shortest match of $substring from back of $string
也就是说
#代表删除从前往后最小匹配的内容
%代表删除从后往前最小匹配的内容
这样明白了吧。
原文:http://blog.csdn.net/hongchangfirst/article/details/28436947
作者:hongchangfirst
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
相关文章推荐
- shell 脚本中$$,$#,$?分别代表什么意思 2018-01-06
- shell---"2>&1" 是什么意思
- shell脚本中的 EOF 是什么意思?
- shell脚本 -d 是目录文件,那么-e,-f分别是什么?还有"! -e"这又是什么意思呢?
- shell 脚本中$$,$#,$?分别代表什么意思?
- shell到底是什么意思?
- linux 下shell中if的“-e,-d,-f”是什么意思
- linux 下shell中if的“-e,-d,-f”是什么意思
- SHELL命令里面的EQ、NE、GT、LT、GE、LE分别是什么意思
- 在linux的shell中/bin/true是什么意思?
- shell中的"2>&1"是什么意思?
- shell 脚本中$$,$#,$?分别代表什么意思?
- linux 下shell中if的“-e,-d,-f”是什么意思
- [shell]Linux脚本开头#!/bin/bash和#!/bin/sh是什么意思以及区别
- shell命令$#、$*、$n分别是什么意思
- shell 脚本中$$,$#,$?分别代表什么意思?
- shell 脚本中$$,$#,$?分别代表什么意思?
- 在linux中shell输入./vmware-install.pl什么意思
- shell中的"2>&1"是什么意思?
- shell脚本 -d 是目录文件,那么-e,-f分别是什么?还有"! -e"这又是什么意思呢?