linux shell命令${}和basename和dirname的学习
来源:互联网 发布:iphone6导出视频mac 编辑:程序博客网 时间:2024/06/06 00:07
1、${}
${}并不是专门为提取文件名或目录名的,它的使用是变量的提取和替换等等操作,它可以提取非常多的内容,并不一定是'/'或'.'
#:表示从左边算起第一个,如${var#/} 去掉变量var从左边算起的第一个'/'字符及其左边的内容,返回从左边算起的第一个'/'的右边的内容
%:表示从右边算起第一个,如${var%/*} 去掉变量var从右边算起的第一个'/'字符及其右边的内容,返回从右边算起的第一个'/'(不含该字符)的左边的内容
##:表示从左边算起最后一个,如${var##*.}去掉变量var从左边算起的最后一个'.'字符及其左边的内容,返回从左边算起的最后一个'.'(不含该字符)的右边的内容
%%:表示从右边算起最后一个,如${var%%.*} 去掉变量var从右边算起的最后一个'.'字符及其右边的内容,返回从右边算起的最后一个'.'(不含该字符)的左边的内容
换句话来说,#总是表示左边算起,%总是表示右边算起。
*:表示要删除的内容,对于#和##的情况,它位于指定的字符(例子中的'/'和'.')的左边,表于删除指定字符及其左边的内容;对于%和%%的情况,它位于指定的字符(例子中的'/'和'.')的右边,表示删除指定字符及其右边的内容。这里的'*'的位置不能互换,即不能把*号放在#或##的右边,反之亦然。
2、basename和dirname命令
该命令的作用是从路径中提取出文件名,使用方法为basename NAME [SUFFIX]。
例子
#!/bin/bash
var=/home/test1/file.txt
echo '-------${}----------'
echo 'Dir name:' $var
echo ${var#/}
echo '${var##*/}:' ${var##*/}
echo '${var##*.}:' ${var##*.}
echo '${var%/*}:' ${var%/*}
echo '${var%%.*}:' ${var%%.*}
echo '------basename dirname---------------'
echo '${basename $var}:' $(basename $var)
echo "(dirname $var):" $(dirname $var)
0 0
- linux shell命令${}和basename和dirname的学习
- linux basename和dirname
- shell中的basename和dirname
- dirname和basename的用法
- linux shell dirname basename
- SHELL 命令:dirname basename的使用
- Linux命令basename,dirname
- Linux命令basename,dirname
- Linux命令basename,dirname
- Linux命令-dirname、basename
- basename 和 dirname
- dirname和basename用法
- Linux中dirname指令和basename指令
- shell basename dirname的使用
- basename dirname 命令的用法
- basename 和 dirname (copied)
- linux dirname basename的用法
- linux文件操作中basename和dirname有什么区别
- PHP四种基本排序算法
- JavaScript学习——数据属性和访问器属性
- 多线程之创建线程的方式之一:实现Callable接口(三)
- GDB调试果然强大
- unit 键盘输入 控制方向
- linux shell命令${}和basename和dirname的学习
- bootstrap-table的导出数据功能的使用,以及导出中文时无效的问题(点击无效)。
- 使用Visual Studio 2017作为Linux C++开发工具
- 20170307 Linux+Oracle+文件系统+添加表空间
- MySQL数据库索引:删除、查看、创建索引
- 程序员的眼里的“逗逼”用户[转]
- Spring 注入随笔
- HDU 3001 Travelling (三进制状压dp)
- linux关闭某端口