麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Linux Shell > 正文

處理Shell腳本中帶有空格的變量(bash腳本)

2020-07-27 18:43:05
字體:
來源:轉載
供稿:網友

本篇主要介紹bash腳本中對于含空格文件處理方式。

在批量處理音頻文件時候使用下面的腳本發(fā)現含有空格的文件名并不能被處理;

#$1: 遍歷的文件夾rootDir=$1cd $rootDirallAudioFile=$(find $1 -name "*/.mp3")for oneAudioFile in $allAudioFiledo  mv -f $oneAudioFile  $rootDirdone

通過set -x將執(zhí)行信息打印出來,發(fā)現可以執(zhí)行到,但是執(zhí)行過程提示找不到對應的文件名,mv對應的source文件并不是原本的文件名,通過對比發(fā)現原來是文件名中含有空格,導致在for循環(huán)的過程中并沒有將完整的文件名取出來;

例如有文件a b.mp3這時候在for循環(huán)的時候會有下面的打印:

mv: cannot stat “./a” : No such file or directory

從上面的錯誤信息可以發(fā)現原本的文件名由于空格被打斷了,因此需要在for循環(huán)處理的過程中識別到文件名是含有空格的,從而對文件名中的空格不做處理;

bash使用IFS變量進行分割,所以需要修改IFS的分隔方式進而重新隔離,即需要將"/n"換行處理作為處理方式:

IFS=$(echo -en “/n/b”)IFS=$(echo -en “/n/r”)

上面的兩種方式均可(使用Ubuntu16.04),其它也可以,只需要在處理的時候將"/n"作為其中一個標識即可,因為使用find命令或者其他命令會將結果以行的形式存放到變量中;

#$1: 遍歷的文件夾rootDir=$1cd $rootDirallAudioFile=$(find $1 -name "*/.mp3")IFS_BACKUP=$IFSIFS=$(echo -en "/n/b")#IFS=$(echo -en "/n/r")for oneAudioFile in $allAudioFiledo  mv -f "$oneAudioFile"  $rootDirdoneIFS=$IFS_BACKUP

至此,bash腳本中對于含空格文件處理方式介紹完畢,當然要記得將原本的IFS內容保存下來,腳本跑完了將原本的內容放回去。

總結

以上所述是小編給大家介紹的處理Shell腳本中帶有空格的變量(bash腳本),希望對大家有所幫助!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美a区 | 91精品国产福利尤物免费 | 中文字幕在线观看www | 全黄性性激高免费视频 | 精品国产一区二区久久 | 国产91久久久久久 | 成人偷拍片视频在线观看 | 亚洲欧美日韩一区二区三区在线观看 | 久久久久97国产精 | 久久亚洲精品国产一区 | 久久久久久久久久久国产精品 | 亚洲黑人在线观看 | 免费国产视频在线观看 | 欧美性受ⅹ╳╳╳黑人a性爽 | 久草干| 国产精品三级a三级三级午夜 | 91情侣偷在线精品国产 | 深夜视频在线 | 成人激情视频网站 | av免费在线观看国产 | 懂色粉嫩av久婷啪 | 欧美一级二级毛片视频 | 亚洲成人伊人 | 黄视频网站免费 | 国产韩国精品一区二区三区久久 | 久久精品视频16 | 欧美精品成人一区二区在线观看 | 中国妞xxxhd露脸偷拍视频 | 99成人精品视频 | 性猛交ⅹxxx乱巴西 欧美日韩1区2区3区 | 欧美日韩国产成人在线观看 | 国产1区2 | 色柚视频网站ww色 | 在线a| 青青草最新网址 | 久久久精品视频免费 | 91网址在线播放 | 成人短视频在线观看 | 久久久国产精品网站 | 亚洲精品一区国产精品丝瓜 | 91久久国产综合久久91精品网站 |