主頁(yè) > 知識(shí)庫(kù) > 處理Shell腳本中帶有空格的變量(bash腳本)

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

熱門(mén)標(biāo)簽:輝縣市地圖標(biāo)注 外呼系統(tǒng)的合法性 房產(chǎn)證地圖標(biāo)注的兩個(gè)面積 北京電銷(xiāo)機(jī)器人對(duì)市場(chǎng)的影響 湖北孝感如何辦理 同花順電話(huà)機(jī)器人微信 地圖標(biāo)注x是啥意思 威海電銷(xiāo)外呼系統(tǒng)好用嗎 武漢語(yǔ)音電銷(xiāo)機(jī)器人加盟

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

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

#$1: 遍歷的文件夾
rootDir=$1
cd $rootDir
allAudioFile=$(find $1 -name "*\.mp3")
for oneAudioFile in $allAudioFile
do
  mv -f $oneAudioFile  $rootDir
done

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

例如有文件a b.mp3這時(shí)候在for循環(huán)的時(shí)候會(huì)有下面的打?。?/p>

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

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

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

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

上面的兩種方式均可(使用Ubuntu16.04),其它也可以,只需要在處理的時(shí)候?qū)?\n"作為其中一個(gè)標(biāo)識(shí)即可,因?yàn)槭褂胒ind命令或者其他命令會(huì)將結(jié)果以行的形式存放到變量中;

#$1: 遍歷的文件夾
rootDir=$1
cd $rootDir
allAudioFile=$(find $1 -name "*\.mp3")
IFS_BACKUP=$IFS
IFS=$(echo -en "\n\b")
#IFS=$(echo -en "\n\r")
for oneAudioFile in $allAudioFile
do
  mv -f "$oneAudioFile"  $rootDir
done
IFS=$IFS_BACKUP

至此,bash腳本中對(duì)于含空格文件處理方式介紹完畢,當(dāng)然要記得將原本的IFS內(nèi)容保存下來(lái),腳本跑完了將原本的內(nèi)容放回去。

總結(jié)

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

您可能感興趣的文章:
  • 使用批處理腳本在特定目錄中啟動(dòng)Git-Bash窗口
  • 詳解bash中的腳本調(diào)試機(jī)制
  • Bash 腳本實(shí)現(xiàn)每次登錄到 Shell 時(shí)可以查看 Linux 系統(tǒng)信息
  • 如何利用Bash腳本監(jiān)控Linux的內(nèi)存使用情況
  • bash腳本中將密碼傳遞給ssh/scp命令方法詳解
  • linux Bash腳本判別使用者的身份方法示例
  • 詳解shell中source、sh、bash、./執(zhí)行腳本的區(qū)別
  • linux bash腳本監(jiān)控啟動(dòng)停止weblogic服務(wù)的腳本寫(xiě)法
  • 如何寫(xiě)出安全的、基本功能完善的Bash腳本

標(biāo)簽:迪慶 安康 麗江 武威 紹興 西寧 日喀則 蚌埠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《處理Shell腳本中帶有空格的變量(bash腳本)》,本文關(guān)鍵詞  處理,Shell,腳本,中,帶有,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《處理Shell腳本中帶有空格的變量(bash腳本)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于處理Shell腳本中帶有空格的變量(bash腳本)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章