쉘 프로그래밍 질문입니다.

sunbee의 이미지

#!/bin/ksh
# 문자열 연산자
a=1234zipper43231
echo $a 를 가지고 조작해 보겠습니다.

# index: 문자열 조각(substring)의 위치
b=`expr index $a 23`
echo $a 에서 23이 처음 나오는 위치는 $b 입니다.

# substr: 주어진 시작 위치에서 길이만큼의 문자열 조각(substring) 찍기
b=`expr substr $a 2 6`
echo 시작 위치는 2이고 길이가 6인 $a 의 문자열 조각\(substring\)은 $b 입니다.

# length: 문자열의 길이
b=`expr length $a`
echo $a 의 길이는 $b 입니다.

위 프로그램을 실행시키면

모두 expr: 구문 오류 가 뜹니다.. 왜 이런겁니까~? ㅠㅠ

ssehoony의 이미지

음. 글쎄요. 전 ksh 이 없어서 테스트를 못했고
bash 에서는 잘 되는군요.

expr 유틸이 구버전이라던지 그런문제는 확인해 보셨나요?
쉘스크립트 말고 그냥 직접 명령을 입력해서 원하는지 확인해 보세요.
그리고 expr 이 /bin 과 /usr/bin, /usr/local/bin 에 여러곳에 존재해서
버전 문제가 발생한 것일 수도 있겠네요.

익명 사용자의 이미지

#!/bin/bash

로 해도 안되네요...

expr: 구문 오류

가 자꾸 뜹니다..
expr최신 버전은 어디서 다운 받을 수 있나요~?

niemand의 이미지

혹시 저 스크립트를 돌리시는 운영체제가 HP-UX가 아닌지요?

글쎄요 제 예전 기억에 솔라리스에서 저런 식으로 코딩한 걸
그대로 hp 에서 실행했는데 문제가 있어서
코드를 조금씩 변경했던 기억이 나는군요