쉘 스크립트에서...

sodomau의 이미지

bash에서
파일명들을 파라미터로 받아서 각각의 파일들에 대해 어떠한 처리를
해주는 스크립트를 작성하려고 합니다.

그러니까

# ./script 파일명1 파일명2 나
# ./script *
같이 해 주면 각각의 파일에 대해서 처리를 해 주고 싶은데,
처음에는

for filename in $@
어쩌구저쩌구..

이렇게 해 줬더니
./script * 로 실행시켰을 때
파일명중에 중간에 공백이 들어간 파일들은 제대로 처리를 못 하네요.
어떻게 해 주면 원하는 결과를 얻을 수 있을까요?

doodoo의 이미지

$@ 에 따옴표를 한번 씌워 보시기 바랍니다.

"$@" 이렇게....

저의 경우는

function dvd {
        mp  dvd://$1 -channels 6  -slang ko -sid ${2:-0}
}
function vcd {
        mp vcd://$1
}
function ac3 {
        mp -channels 6 "$@"
}

이렇게 사용 중 인데....그럭저럭 되고 있거든요
최종호의 이미지

for filename
어쩌구저쩌구..

만 하시면 됩니다.

#!/bin/bash

for filename
do
        echo "file is '$filename'"
done
sodomau의 이미지

아.. 잘 되는군요!
감사합니다~

최종호 wrote:
for filename
어쩌구저쩌구..

만 하시면 됩니다.

#!/bin/bash

for filename
do
        echo "file is '$filename'"
done