como manipular um caminho ($ 1)

2

Eu:

/home/wms/mp3/

e

/home/wms/tmp/

Dentro de ~ / tmp meu script:

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

Eu faço:

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

Como eu lido com $ 1?

porque "@ 1" é compatível com / home / wms / mp3 / first1

$ {a%. *} corta o arquivo de extensão

mas o caminho não está correto: este script é executado somente se eu o executar dentro de ~ / mp3

    
por watchmansky 26.12.2014 / 11:16

1 resposta

2

Eu uso o basename $ a para extrair o nome do arquivo e, em seguida, construo o caminho com o diretório temporal:

#!/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
    
por 26.12.2014 / 11:39