欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2020年02月05日 09:35:56   作者:的神等等  
這篇文章主要介紹了處理Shell腳本中帶有空格的變量,本文主要是通過bash腳本對于含空格文件處理方法,需要的朋友可以參考下

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

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

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

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

例如有文件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)處理的過程中識別到文件名是含有空格的,從而對文件名中的空格不做處理;

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)識即可,因?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腳本中對于含空格文件處理方式介紹完畢,當(dāng)然要記得將原本的IFS內(nèi)容保存下來,腳本跑完了將原本的內(nèi)容放回去。

總結(jié)

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

相關(guān)文章

  • Linux用腳本實(shí)現(xiàn)“時(shí)分秒“倒計(jì)時(shí)功能

    Linux用腳本實(shí)現(xiàn)“時(shí)分秒“倒計(jì)時(shí)功能

    這篇文章主要介紹了Linux用腳本實(shí)現(xiàn)“時(shí)分秒“倒計(jì)時(shí)功能,本文圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • shell腳本輸出多個(gè)主機(jī)的網(wǎng)卡速率的方法

    shell腳本輸出多個(gè)主機(jī)的網(wǎng)卡速率的方法

    這篇文章主要介紹了shell腳本輸出多個(gè)主機(jī)的網(wǎng)卡速率的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Shell中獲取昨天和多天前日期的示例代碼

    Shell中獲取昨天和多天前日期的示例代碼

    本文主要介紹了Shell中獲取昨天和多天前日期的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • Shell函數(shù)的7種用法介紹

    Shell函數(shù)的7種用法介紹

    這篇文章主要介紹了Shell函數(shù)的7種用法介紹,本文講解了在shell文件內(nèi)部定義函數(shù)并引用、返回值、函數(shù)輸出、向函數(shù)傳遞參數(shù)、全局變量與局部變量等內(nèi)容,需要的朋友可以參考下
    2014-11-11
  • Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點(diǎn)

    Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點(diǎn)

    這篇文章主要介紹了Shell+Curl網(wǎng)站狀態(tài)檢查腳本 抓出無法訪問的站點(diǎn),需要的朋友可以參考下
    2015-10-10
  • Linux中mkdir命令詳解

    Linux中mkdir命令詳解

    Linux mkdir命令主要用來創(chuàng)建目錄,也可以直接創(chuàng)建多層目錄,本文就為大家介紹下 Linux mkdir命令的方法,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • Linux命令創(chuàng)建日期文件夾或者文件的實(shí)例代碼

    Linux命令創(chuàng)建日期文件夾或者文件的實(shí)例代碼

    本文通過實(shí)例代碼給大家介紹了Linux命令創(chuàng)建日期文件夾或者文件的相關(guān)知識,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 利用Shell腳本循環(huán)讀取文件中每一行的方法詳解

    利用Shell腳本循環(huán)讀取文件中每一行的方法詳解

    讀取文件是我們在日常工作中經(jīng)常遇到的一個(gè)需求,下面這篇文章主要給大家介紹了關(guān)于利用Shell腳本循環(huán)讀取文件中每一行的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)下吧。
    2017-09-09
  • Python執(zhí)行Linux系統(tǒng)命令的4種方法

    Python執(zhí)行Linux系統(tǒng)命令的4種方法

    這篇文章主要介紹了Python執(zhí)行Linux系統(tǒng)命令的4種方法,即在Python腳本中調(diào)用Shell命令,需要的朋友可以參考下
    2014-10-10
  • shell 中數(shù)學(xué)計(jì)算總結(jié)

    shell 中數(shù)學(xué)計(jì)算總結(jié)

    shell中的賦值和操作默認(rèn)都是字符串處理,在此記下shell中進(jìn)行數(shù)學(xué)運(yùn)算的幾個(gè)特殊方法,以后用到的時(shí)候可以來看,呵呵
    2012-09-09

最新評論