亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

shell腳本獲取文件名字

標簽:
C

    我们有时候需要获取某个文件路径的文件名或者文件所在目录名,那么如何操作呢?下面介绍两种方法。

一、利用 ${}

1、${var##*/}

    该命令的作用是去掉变量var从左边算起的最后一个’/’ 字符及其左边的内容,返回从左边算起的最后一个’/’(不含该字符)的右边的内容。使用例子及结果如下:

https://img1.sycdn.imooc.com//62984ab500013fae06380139.jpg

2、${var##*.}

    该命令的作用是去掉变量var从左边算起的最后一个 ‘.’ 字符及其左边的内容,返回从左边算起的最后一个’.’(不含该字符)的右边的内容。使用例子及结果如下:

https://img1.sycdn.imooc.com//62984ac80001dcb904640113.jpg

3、${var#*.}

    该命令的作用是去掉变量var从左边算起的第一个’.‘字符及其左边的内容,返回从左边算起第一个’.’(不含该字符)的右边部分的内容。使用例子及结果如下:

https://img1.sycdn.imooc.com//62984ad600016cfc05170086.jpg

4、${var%/*}

    该命令的使用是去掉变量var从右边算起的第一个’/‘字符及其右边的内容,返回从右边算起的第一个’/’(不含该字符)的左边的内容。使用例子及结果如下:

https://img1.sycdn.imooc.com//62984ae40001fd0e06730082.jpg

5、${var%%.*}

    该命令的使用是去掉变量var从右边算起的最后一个’.‘字符及其右边的内容,返回从右边算起的最后一个’.’(不含该字符)的左边的内容。使用例子及结果如下:

https://img1.sycdn.imooc.com//62984af60001ad7f06570085.jpg

6、${}总结

    ${}并不是专门为提取文件名或目录名的,它的使用是变量的提取和替换等等操作,它可以提取非常多的内容,并不一定是上面五个例子中的’/‘或’.’。

#:表示从左边算起第一个

%:表示从右边算起第一个

##:表示从左边算起最后一个

%%:表示从右边算起最后一个

    换句话来说,#总是表示左边算起,%总是表示右边算起。

*:表示要删除的内容,对于#和##的情况,它位于指定的字符(例子中的’/‘和’.’)的左边,表于删除指定字符及其左边的内容;对于%和%%的情况,它位于指定的字符(例子中的’/‘和’.’)的右边,表示删除指定字符及其右边的内容。这里的’'的位置不能互换,即不能把号放在#或##的右边,反之亦然。

例如:${var%%x*}表示找出从右边算起最后一个字符x,并删除字符x及其右边的字符。


二、basename和dirname

1. basename

    该命令的作用是从路径中提取出文件名,使用方法为basename NAME [SUFFIX]

(1)从路径中提出出文件名(带后缀),例子如下:

https://img1.sycdn.imooc.com//62984b0f000173a706640085.jpg

(2)从上面命令的用法中可以看到,后缀(SUFFIX)是一个可选项,若只想提取出文件名file,而不带有后缀,还可以在变量的后面加上后缀名,例子如下:

https://img1.sycdn.imooc.com//62984b460001cca006170083.jpg

2. dirname

    该命令的作用是从路径中提取出目录名,使用方法为 dirname NAME

使用例子如下:

https://img1.sycdn.imooc.com//62984b590001413406760086.jpg

https://img1.sycdn.imooc.com//62984b73000128d805070090.jpg


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消