最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell中的${}、##和%%使用范例

 更新時(shí)間:2015年04月24日 10:47:12   投稿:junjie  
這篇文章主要介紹了Shell中的${}、##和%%使用范例,本文給出了不同情況下得到的結(jié)果,需要的朋友可以參考下

今天看一個腳本文件的時(shí)候有一些地方不太懂,找了一篇文章看了一些,覺得不錯,保留下來。
 
假設(shè)我們定義了一個變量為:

復(fù)制代碼 代碼如下:

file=/dir1/dir2/dir3/my.file.txt

可以用${ }分別替換得到不同的值:
復(fù)制代碼 代碼如下:

${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

記憶的方法為:
復(fù)制代碼 代碼如下:

# 是 去掉左邊(鍵盤上#在 $ 的左邊)
%是去掉右邊(鍵盤上% 在$ 的右邊)
單一符號是最小匹配;兩個符號是最大匹配
${file:0:5}:提取最左邊的 5 個字節(jié):/dir1
${file:5:5}:提取第 5 個字節(jié)右邊的連續(xù)5個字節(jié):/dir2

也可以對變量值里的字符串作替換:
復(fù)制代碼 代碼如下:

${file/dir/path}:將第一個dir 替換為path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:將全部dir 替換為 path:/path1/path2/path3/my.file.txt

利用 ${ } 還可針對不同的變數(shù)狀態(tài)賦值(沒設(shè)定、空值、非空值):

${file-my.file.txt} :假如 $file 沒有設(shè)定,則使用 my.file.txt 作傳回值。(空值及非空值時(shí)不作處理)
${file:-my.file.txt} :假如 $file 沒有設(shè)定或?yàn)榭罩?,則使用 my.file.txt 作傳回值。 (非空值時(shí)不作處理)
${file+my.file.txt} :假如 $file 設(shè)為空值或非空值,均使用 my.file.txt 作傳回值。(沒設(shè)定時(shí)不作處理)
${file:+my.file.txt} :若 $file 為非空值,則使用 my.file.txt 作傳回值。 (沒設(shè)定及空值時(shí)不作處理)
${file=my.file.txt} :若 $file 沒設(shè)定,則使用 my.file.txt 作傳回值,同時(shí)將 $file 賦值為 my.file.txt 。 (空值及非空值時(shí)不作處理)
${file:=my.file.txt} :若 $file 沒設(shè)定或?yàn)榭罩?,則使用 my.file.txt 作傳回值,同時(shí)將 $file 賦值為my.file.txt 。 (非空值時(shí)不作處理)
${file?my.file.txt} :若 $file 沒設(shè)定,則將 my.file.txt 輸出至 STDERR。 (空值及非空值時(shí)不作處理)

${file:?my.file.txt} :若 $file 沒設(shè)定或?yàn)榭罩?,則將 my.file.txt 輸出至 STDERR。 (非空值時(shí)不作處理)
${#var} 可計(jì)算出變量值的長度:

${#file} 可得到 27 ,因?yàn)?dir1/dir2/dir3/my.file.txt 是27個字節(jié)
[/code]

相關(guān)文章

  • Linux幫助和用戶管理命令

    Linux幫助和用戶管理命令

    這篇文章主要介紹了Linux幫助和用戶管理命令,需要的朋友可以參考下
    2017-10-10
  • Shell腳本實(shí)現(xiàn)apache日志中的狀態(tài)碼分析

    Shell腳本實(shí)現(xiàn)apache日志中的狀態(tài)碼分析

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)apache日志中的狀態(tài)碼分析,本文先是介紹了按天切割日志的方法,然后給出了分析訪問狀態(tài)碼的腳本,需要的朋友可以參考下
    2014-12-12
  • bash獲取當(dāng)前路徑示例

    bash獲取當(dāng)前路徑示例

    這篇文章主要介紹了bash獲取當(dāng)前路徑示例,需要的朋友可以參考下
    2014-04-04
  • Shell編程之正則表達(dá)式與文本怎么用

    Shell編程之正則表達(dá)式與文本怎么用

    我們經(jīng)常在寫Shell腳本的時(shí)候,需要判斷一個變量名、函數(shù)名或者文件名是否符合命名規(guī)范,下面這篇文章主要介紹了Shell編程之正則表達(dá)式與文本怎么用的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-10-10
  • Shell中sed編輯器的具體使用

    Shell中sed編輯器的具體使用

    sed是一種流編輯器,sed編輯器可以根據(jù)命令來處理數(shù)據(jù)流中的數(shù)據(jù),本文就來介紹一下Shell中sed編輯器的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Linux實(shí)現(xiàn)文件定期本地備份/異地備份/刪除備份的腳本

    Linux實(shí)現(xiàn)文件定期本地備份/異地備份/刪除備份的腳本

    數(shù)據(jù)備份的意義就在于,當(dāng)受到網(wǎng)絡(luò)攻擊、入侵、電源故障或者操作失誤等事故的發(fā)生后,可以完整、快速、簡捷、可靠地恢復(fù)原有系統(tǒng)。本文為大家準(zhǔn)備了文件定期本地備份/異地備份/刪除備份的腳本,希望對你們有所幫助
    2022-10-10
  • 淺談vim的四種模式及模式切換

    淺談vim的四種模式及模式切換

    下面小編就為大家?guī)硪黄獪\談vim的四種模式及模式切換。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 一天一個shell命令 linux好管家--磁盤--df命令詳解

    一天一個shell命令 linux好管家--磁盤--df命令詳解

    這篇文章主要介紹了一天一個shell命令 linux好管家--磁盤--df命令詳解 ,需要的朋友可以參考下
    2016-06-06
  • Linux curl命令詳解

    Linux curl命令詳解

    這篇文章主要為大家詳細(xì)介紹了Linux curl命令的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Linux中的Syslog命令

    Linux中的Syslog命令

    syslog是Linux系統(tǒng)默認(rèn)的日志守護(hù)進(jìn)程,默認(rèn)的syslog配置文件是/etc/syslog.conf文件。接下來通過本文給大家分享Linux中的Syslog命令,感興趣的朋友一起看看吧
    2017-09-09

最新評論

两当县| 鹤山市| 屏山县| 敖汉旗| 海宁市| 神农架林区| 连江县| 衢州市| 民丰县| 萍乡市| 炎陵县| 平谷区| 彭泽县| 新乡县| 柳林县| 浙江省| 诸城市| 宽城| 舒兰市| 扶绥县| 吴忠市| 石楼县| 中超| 宣武区| 泾源县| 巴中市| 来宾市| 镇雄县| 澄江县| 常德市| 崇明县| 皋兰县| 乐都县| 会泽县| 蚌埠市| 江西省| 诏安县| 锡林郭勒盟| 永济市| 石台县| 黑龙江省|