shell中#*,##*,#*,##*,% *,%% *的含义及用法

介绍下Shell中的${}、##和%%使用范例,本文给出了不同情况下得到的结果。假设定义了一个变量为:代码如下:file=/dir1/dir2/dir3/my.file.txt可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:删掉最后一个 /  及其左边的字符串:my.file.txt${file#*.}:删掉第一个 .  及其左边的字符串:file.txt${file##*.}:删掉最后一个 .  及其左边的字符串:txt${file%/*}:删掉最后一个  /  及其右边的字符串:/dir1/dir2/dir3${file%%/*}:删掉第一个 /  及其右边的字符串:(空值)${file%.*}:删掉最后一个  .  及其右边的字符串:/dir1/dir2/dir3/my.file${file%%.*}:删掉第一个  .   及其右边的字符串:/dir1/dir2/dir3/my记忆的方法为:# 是 去掉左边(键盘上#在 $ 的左边)%是去掉右边(键盘上% 在$ 的右边)单一符号是最小匹配;两个符号是最大匹配${file:0:5}:提取最左边的 5 个字节:/dir1${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2也可以对变量值里的字符串作替换:${file/dir/path}:将第一个dir 替换为path:/path1/dir2/dir3/my.file.txt${file//dir/path}:将全部dir 替换为 path:/path1/path2/path3/my.file.txt

原文:https://blog.csdn.net/jiezi2016/article/details/79649382

原文地址:https://www.cnblogs.com/nxzblogs/p/11664135.html

时间: 2024-08-06 06:25:10

shell中#*,##*,#*,##*,% *,%% *的含义及用法的相关文章

shell中感叹号与引号用法

线上环境需要定期清理缓存,如下: [[email protected] scripts]# curl http://10.238.74.31/irm/manualDataSyncPage!synchronizeCrmGroupCustomerInfo.html?UserName=004&Password=ZHzg-123 -bash: !synchronizeCrmGroupCustomerInfo.html?UserName=004: event not found "!"在

Shell中的Wget 的用法

Wget 的用法 -V 版本信息 -h 帮助信息 -b 后台执行Wget  -o filename 把记录放在文件filename  -a filename 把记录附加在文件filename -d 显示调试信息 -q 无输出下载方式  -v 详细的屏幕输出(默认) -nv 简单的屏幕输出 -i inputfiles 从文本文件内读取地址列表 -F forcehtml 从html文件内读取地址列表 -t number number次重试下载(0时为无限次) -O output document f

转载:shell中awk printf的用法

转载:http://www.linuxawk.com/jiaocheng/83.html 6. printf函数 打印输出时,可能需要指定字段间的空格数,从而把列排整齐.在print函数中使用制表符并不能保证得到想要的输出,因此,可以用printf函数来格式化特别的输出. printf函数返回一个带格式的字符串给标准输出,如同C语言中的printf语句一样.printf语句包括一个加引号的控制串,控制串中可能嵌有若干格式说明和修饰符.控制串后面跟一个逗号,之后是一列由逗号分隔的表达式.print

shell中的while read用法

#!/bin/shpath_monitor=/opt/monitor_process.shpath_process_list=/opt/process.listcat $path_process_list | while read ido        if [ x"$(ps -Af | grep "$i" | grep -v grep)" = x"" ] ; then                $i &        fidone

shell中for、while用法

#数字段形式for i in {1..10}do   echo $idone #详细列出(字符且项数不多)for File in 1 2 3 4 5do    echo $Filedone #对存在的文件进行循环for shname in `ls *.sh`do          name=`echo "$shname" | awk -F. '{print $1}'`                    echo $namedone #查找循环(ls数据量太大的时候也可以用这种方法)

shell中for循环总结

关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 1. for((i=1;i<=10;i++));do echo $(expr $i \* 4);done2.在shell中常用的是 for i in $(seq 10)3.for i in `ls` 4.for i in ${arr[@]}5.for i in $* ; do6.for File in /proc/sys/net/ipv4/confacc

shell中for循环

关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 1. for((i=1;i<=10;i++));do echo $(expr $i \* 4);done2.在shell中常用的是 for i in $(seq 10)3.for i in `ls` 4.for i in ${arr[@]}5.for i in $* ; do6.for File in /proc/sys/net/ipv4/confacc

Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)

case语句适用于需要进行多重分支的应用情况. case分支语句的格式如下: case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2        ;; *) 默认执行的命令序列     ;; esac Linux Shell中的特殊符号和含义简明总结(包含了绝大部份)_linux shell_脚本之家 在Linux Shell中有很多的特殊符号,这对于我们写Shell脚本时要特别留意:一方面要知道这些特殊符号的用法,这些符号用好了可以达到事半功倍的效果:但另一方面要避免这些

shell中的正则表达式, and和or写法, vim中的查找和替换用法

1. shell中的正则和原生的正则有些许出入, 以下列举了shell中的正则规则: 图中\number 代表前面对应()位置的内容, 类似于python中的命名分组, \对应数字可直接引用括号中内容 2. shell中的正则使用举例: 双括号的额外含义, 其内可使用正则表达式, 并不表示正则必须在双括号中才能执行; [[ 10 =~ ^[0-9]+$ ]] 用于shell中判定是否是数字, 注意正则处不要加引号, 加引号表示字符串匹配; 取反在10前加叹号即可; shell中这些命令都是根据正