유닉스 쉘 스크립트에 대해 궁금합니다

jinmanp의 이미지

shp파일 얻어오는 명령어를 쉘 스크립트로 만들려고 합니다.

밑에 명령어중에 11111을 스크립트 안에 써주면 쉘 스크립트가 정상적으로 작동되는데

11111 대신 $1을 쓰고 쉘스크립트를 실행할 때 11111을 인수로 주면

sde2shp 명령이 제대로 작동이 되질 않습니다.

$1을 써서 제대로 실행되게 하는 방법좀 알려주세요 ㅠㅠ

./aaa.sh

#!/usr/bin/bash
sde2shp -o init -l LO_PO_OBNN,shape -f 11111/LO_PO_OBNN -t polygon -a all -s $LMIS11111 -i 5151 -u aaa -p aaa
sde2shp -o init -l LA_PA_OBNN,shape -f 11111/LA_PO_OBNN -t polygon -a all -s $LMIS11111 -i 5151 -u aaa -p aaa
정상작동

./aaa.sh 11111

#!/usr/bin/bash
sde2shp -o init -l LO_PO_OBNN,shape -f $1/LO_PO_OBNN -t polygon -a all -s $LMIS$1 -i 5151 -u aaa -p aaa
sde2shp -o init -l LA_PA_OBNN,shape -f $1/LA_PO_OBNN -t polygon -a all -s $LMIS$1 -i 5151 -u aaa -p aaa
이건 오류

eseo의 이미지

다음과 같이 변수를 찍어보면서 디버깅하실수 있을거 같네요.

echo $LMIS
echo $LMIS11111
echo $LMIS$1
echo ${LMIS}$1

---
배려하는 마음을 갖자.

geoplab의 이미지

$1/LO_PO_OBNN 하고 $LMIS$1 를 임의의 변수로 설정해서 실행해보세요.

익명 사용자의 이미지

a) $LMIS11111 => 변수 LMIS11111의 값
b) $LMIS$1 => 변수 $LMIS와 $1가 이어진 값.

예) $LMIS가 3이고 $LMIS11111이 10이고, $1을 11111로 주어진다면
a) $LMIS1111 => 11
b) $LMIS$1 => 311111

$LMIS11111이 인자로 들어가는 부분이 어떤 의미인지 명확하게 살펴보시고 위의 두 댓글을 참고하시면 될 듯.