쉘 프로그래밍 command not found가 뜹니다

krsgu45의 이미지

if [ $# -eq 0 ]
echo "No input"

if [ $# -eq 1 ]
egrep "$1" data|awk -f file.awk

if [ $# -eq 2 ]
egrep "$1" data|egrep "$2" data|awk -f file.awk

인자가 들어온 갯수에 따라 그 인자를 포함한 내용을 출력하는건데
input으로 인자 2개를 넣으면 if[ 2 -eq 1 ]: command not found라고 뜹니다.
syntex error가 없어보이는데 뭐가 문제일까요?ㅠㅠ

bushi의 이미지

krsgu45의 이미지

if [ $# -eq 0 ];
then
echo "No input"
fi

if [ $# -eq 1 ];
then
egrep "$1" data|awk -f file.awk
fi

if [ $# -eq 2 ];
then
egrep "$1" data|egrep "$2" data|awk -f file.awk
fi

으로 글보고 고쳐도 if[ 2 = 1 :command not found가 뜨고
then에 syntex error가 있다고 뜨네요ㅜㅜ.ㅜ

bushi의 이미지

엉뚱한 스크립트 실행한 것 아닌가요 ?

ymir의 이미지

여기 적어 놓은 스크립트랑 실제 스크립트랑 다른 것 같은데요..?
에러 메시지 보면, 실제 스크립트에는 if[ $# = 2 ] 와 같이 if 와 [ 가 붙어 있을 것 같은데..
if 문이 인식이 안 되었으니, then 이 갑툭튀 했다고 syntax error 나왔을 거구요..
자기가 한 것과 본 것을 정확하게 적었는지 다시 확인해 보세요.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』

김정균의 이미지

에러 메시지로 보아서는 if 와 "[" 사이에 공백 문자가 없어서 일 겁니다.

if[ $# -eq 1 ];
then
  egrep "$1" data|awk -f file.awk
fi

와 같이 되어 있는 것이 아닌지 살펴 보세요.

음 ymir 님 글의 뒷북이네요 orz

kwkimg3100의 이미지

코드가 별로 길지않으면 시작부분부터 set -xv 하시고 끝에 set +xv하시면 해결될지도?