bashはいくつかのファイルを処理するためのパスを追加します。

bashはいくつかのファイルを処理するためのパスを追加します。

~/mp3にはmp3ファイルがあります。

私のスクリプト:

#!/bin/bash
br=80
for a in $1*.{wav,mp3} ; 
do ffmpeg -i "$a" -ar 44100 -ab $br "$br""_tmp/${a%.*} ["$br"].mp3" ; 

$1 でパスを追加します。

myscript.sh /home/$USER/mp3/

しかし、エラーがあります。

/home/$USER/mp3/*.mp3: No such file or directory

したがって、スクリプトは実行されません。 ~mp3 ディレクトリでスクリプトを実行する場合にのみ実行されます。

ベストアンサー1

スクリプトを一番上に置きます。

shopt -s nullglob

これにより、あなたのようにmp3がなくてもエラーは発生しません。

ワイルドカードに一致するmp3ファイルがない場合、シェルは*.mp3それを文字通り処理します。

おすすめ記事