如何处理路径 ($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

相关内容