Unix - スクリプト空間を使用したファイル名のアドレス指定

Unix - スクリプト空間を使用したファイル名のアドレス指定

私はファイルを持っDeep.flacていますA1 - Rolling In The Deep.flac

以下のスクリプトを作成しましたが、Deep.flac 空白のあるファイル名では機能しないようです。私はOSXでUNIXシステムを学んでいます。

soxデフォルトでは、ファイル名を同じままにしながらflacをaiffに変換するために使用しました。

私のスクリプトConvertX2Y.sh:

#!/bin/bash

# Author: Rei Yash Dean
# Copyright: Free
# Script: to convert flac files to aiff using sox; while keeping file name unchanged

for x in *.flac;
do sox $x $(basename $x .flac).aiff;
done

返されるエラーは次のとおりです。

sox FAIL formats: can't open input file `The': No such file or directory

答え1

置く引用符プログラムが単一のパラメータとして処理したい項目の周り:

sox "$x" "$(basename "$x" .flac).aiff"

上記のように二重引用符を使用すると、$x次のように変数参照を使用できます。使用する場合アポストロフィ( '...') その中に使用する特殊文字は作成したとおりに保持されます。

関連情報