스크립트로 seq 명령어 구현.. 근데.. 안돌아갑니다.... help
글쓴이: janues / 작성시간: 월, 2012/12/17 - 11:28오전
#!/bin/sh begin=$1 end=$2 progress="$3" if [ "$progress" == "+" ]; then while [ $begin -le $end ] do echo -n $begin " " (( begin++ )) done echo "" else while [ $begin -ge $end ] do echo -n $begin " " (( begin-- )) done echo " " fi
요렇게 bash쉘로 돌아가는 스크립트를 구성했는데 이게 리눅스에서는 잘 돌아가는데
AIX ksh 환경에서는 구동이 안됩니다.
아마 Korn 쉘 환경과 bash쉘 환경이 달라서 그런듯 한데..
korn 쉘 고수 안계십니까?
제 코드 수정 좀 부탁드립니다.
Forums:
음 ..
shell script 는 맨 처음에 #! 으로 지정한 interpreter 를 호출해서 script 를 실행니다.
linux 의 경우에는 /bin/sh 가 디폴트로 bash 로 링크되어 있는 경우가 많은데..(배포판에 따라 ash 나 dash 를 쓰는 경우도 있음)
어찌되었든 대부분의 *nix 시스템들은 bourne shell 로 되어 있을겁니다.
만약 korn shell 을 쓰시려면, /bin/sh 를 /bin/ksh 로 바꾸셔야 하고, bash 로 쓰시겠다면 /bin/bash 로 바꾸시면 됩니다.
일단 bash 를 설치하고, /bin/bash 로 바꾼다면 제대로 돌아갈 것 같은데..
bash 가 없다면, bourne shell script 문법으로 바꾸셔야 합니다.
되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』
seq 명령어를 흉내내기 위해 "+"를 삭제해버리고 .....
#!/bin/sh
seq () {
begin=$1
end=$2
progress="$3"
if [ "$progress" = "" ]; then
while [ $begin -le $end ]
do
echo $begin " \c"
begin=`expr $begin + 1`
done
echo ""
else
while [ $begin -ge $end ]
do
echo -n $begin " \c"
begin=`expr $begin - 1`
done
echo ""
fi
}
위처럼 마무리 했습니다.
휴~!! 리눅스만 만지다가 AIX를 손대보니 많이 다르네요...
좀 더 공부 해야 할까 봅니다... 도움 주셔서 감사합니다.
댓글 달기