パスの処理方法($1)

パスの処理方法($1)

私は持っています:

/home/wms/mp3/

そして

/home/wms/tmp/

~/tmpでは、私のスクリプトは次のようになります。

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

私は以下が欲しい:

/home/wms/tmp/./script.sh /home/wms/mp3/

1ドルで何をしますか?

「@1」は/home/wms/mp3/first1と一致するためです。

${a%.*} 拡張ファイルの切り捨て

しかし、パスが間違っています。このスクリプトは、〜/ mp3内で実行している場合にのみ実行されます。

答え1

basename $a を使用してファイル名を抽出し、一時ディレクトリを使用してパスを作成します。

#!/bin/bash
br=64
mkdir -p _tmp
for a in "$1"*.mp3 ; do
aux=$(basename ${a})
ffmpeg -i "$a" -ar 44100 -ab $br "$br""_tmp/${aux%.*}_["$br"].mp3" 
done

関連情報