Manpages

이 름

runscript − minicom을 위 한 스 크 립 트 인 터 프 리 터

사 용 법

runscript 스 크 립 트

설 명

runscript 풀 그 림 은 간 단 한 스 크 립 트 인 터 프 리 터 이 다 . 이 것 은 minicom 통 신 풀 그 림 안 에 서 호 출 되 어 , unix 시 스 템 이 나 , 기 타 BBS에 접 속 과 정 을 자 동 으 로 처 리 해 준 다 .

호 출

이 풀 그 림 의 인 자 로 단 지 하 나 의 스 크 립 트 파 일 이 름 만 을 사 용 할 수 있 다 . 또 한 이 것 의 입 /출 력 은 단 지 연 결 된 호 스 트 를 대 상 으 로 만 하 고 있 다 . runscript에 서 처 리 하 는 모 든 메 시 지 는 현 재 화 면 의 것 을 입 력 받 아 , stderr로 보 낸 다 . 그 래 서 , 이 인 터 프 리 터 는 minicom에 서 작 동 되 도 록 고 안 작 성 되 었 다 .

참 고 : 이 스 크 립 트 파 일 은 초 기 값 으 로 /usr/lib/minicom 경 로 안 에 있 어 야 한 다 . (즉 , 기 본 적 으 로 시 스 템 관 리 자 만 이 이 스 크 립 트 파 일 을 관 리 할 수 있 다 . - 초 기 값 )

키 워 드

runscript는 다 음 의 명 령 들 을 인 식 한 다 :

expect send goto gosub return !
exit print set inc dec if
timeout verbose sleep break call

키 워 드 개 요

send <문 자 열 >

<문 자 열 >은 모 뎀 으 로 보 낼 문 자 열 이 다 . <문 자 열 >로 사 용 될 수 있 는 것 은 :
- 단 순 한 단 어 , 예 ’send hello’
- 따 움 표 로 둘 러 싼 단 어 들 , 예 ’send "hello world"’

<문 자 열 > 안 에 는 다 음 과 같 은 제 어 문 자 들 을 사 용 할 수 있 다 .

\n - 새 줄
\r - 리 턴 문 자
\a - 벨 소 리
\b - 백 스 페 이 스
\c - 초 기 값 인 ’\r’ 자 동 보 내 기 를 하 지 않 음 .
\f - 용 지 바 꿈 문 자
\o - o문 자 보 냄 (o는 8진 수 를 뜻 한 다 .)

또 한 $(환 경 변 수 _값 )을 사 용 할 수 있 다 . 예 : $(TERM). minicom에 서 는 두 개 의 특 별 한 환 경 변 수 값 을 제 공 하 는 데 , 사 용 자 ID로 $(LOGIN), 비 밀 번 호 로 $(PASS)가 그 것 이 다 . 이 값 은 전 화 번 호 부 에 서 지 정 한 다 .

print <문 자 열 >

<문 자 열 >을 현 재 화 면 에 출 력 한 다 . 끝 에 는 자 동 으 로 ’\r\n’ 문 자 가 붙 는 다 . 나 머 지 는 ’send’와 사 용 법 이 같 다 .

label:

goto나 gosub에 의 해 이 동 되 는 분 기 점 을 지 정 .

goto <label>

스 크 립 트 안 에 서 다 른 위 치 로 이 동 한 다 .

gosub <label>

서 브 goto로 ’return’에 도 달 했 을 때 , 현 재 의 영 역 안 에 서 이 동 한 다 .

return

gosub 영 역 을 벗 어 난 다 .

! <명 령 >

쉘 명 령 을 실 행 한 다 . 그 명 령 의 리 턴 값 은 $? 변 수 에 저 장 된 다 . 그 래 서 , ’if’ 문 으 로 선 택 적 인 문 을 만 들 수 있 다 .

exit [값 ]

부 여 한 돌 려 주 며 , "runscript"를 마 친 다 . 초 기 값 1

set <변 수 명 > <변 수 값 >

<변 수 명 >은 a부 터 z까 지 의 단 일 문 자 이 며 , 이 변 수 에 <변 수 값 >을 지 정 한 다 . 변 수 선 언 없 이 사 용 되 면 , 즉 시 만 들 고 , <변 수 값 >은 숫 자 나 다 른 변 수 여 야 한 다 .

inc <변 수 명 >

<변 수 명 >의 변 수 값 을 하 나 씩 증 가 시 킨 다 .

dec <변 수 명 >

<변 수 명 >의 변 수 값 을 하 나 씩 감 소 시 킨 다 .

if <변 수 > <연 산 자 > <변 수 > <문 >

사 용 할 수 있 는 연 산 자 는 <, >, !=, -. 예 , ’if a > 3 goto exitlabel’.

timeout <값 >

제 한 시 간 을 설 정 한 다 . 초 기 값 으 로 ’runscript’ 전 체 실 행 시 간 은 2분 이 다 . 즉 , 특 별 히 시 간 을 정 해 놓 지 않 으 면 , 2분 후 에 는 자 동 으 로 종 료 된 다 . 이 값 을 이 명 령 으 로 바 꿀 수 있 다 . 이 명 령 은 ’expect’ 문 에 서 는 다 르 게 동 작 한 다 . 아 래 참 조 .

verbose <on|off>

초 기 값 은 ’on’. ’runscript’ 작 동 상 태 를 화 면 에 서 볼 수 있 게 한 다 .

sleep <값 >

<값 > 초 동 안 실 행 을 잠 시 멈 춘 다 .

expect

expect {
패 턴 [문 ]
패 턴 [문 ]
[timeout <값 > [문 ] ]
....
}
가 장 중 요 한 명 령 어 이 다 . 패 턴 을 기 다 려 서 , 해 당 패 턴 이 나 타 나 면 , 해 당 <문 >을 실 행 한 다 . 패 턴 은 ’send’에 서 설 명 한 문 자 열 이 며 , 일 반 적 으 로 첫 번 째 , 패 턴 에 대 한 문 은 생 략 해 서 , 만 일 첫 번 째 패 턴 이 나 타 나 면 , 바 로 expect 문 을 벗 어 나 다 음 작 업 을 계 속 하 도 록 한 다 . 만 일 이 때 , 첫 번 째 패 턴 이 나 타 나 지 않 고 , 두 번 째 패 턴 이 나 타 난 다 면 , 두 번 째 패 턴 에 서 지 정 한 문 을 실 행 한 다 . 초 기 값 으 로 expect의 최 대 시 간 은 60초 이 다 . 이 것 을 바 꾸 려 면 timeout을 사 용 한 다 .

break

’expect’ 문 을 중 지 한 다 . 이 명 령 은 ’timeout’ 명 령 에 대 한 문 으 로 일 반 적 으 로 사 용 된 다 . ’timeout’에 대 한 아 무 른 작 업 을 지 시 하 지 않 으 면 , 제 한 시 간 을 초 과 했 을 경 우 , 그 스 크 립 트 자 체 를 마 쳐 버 리 기 때 문 이 다 .

call <스 크 립 트 이 름 >

다 른 <스 크 립 트 이 름 >의 파 일 을 불 러 와 실 행 한 다 . 이 때 아 무 런 오 류 가 나 지 않 으 면 나 머 지 스 크 립 트 를 실 행 한 다 .

참 고

그 다 지 프 로 그 래 밍 에 대 한 지 식 이 없 어 도 쉽 게 만 들 수 있 을 것 이 라 생 각 한 다 . BASIC 정 도 를 한 번 쯤 사 용 해 본 사 람 이 라 면 쉽 게 작 성 할 수 있 을 것 이 다 . minicom 패 키 지 안 에 는 scriptdemo, unixlogin 등 몇 개 의 스 크 립 트 파 일 이 예 제 로 있 는 데 , 이 것 을 참 고 한 다 면 , 보 다 유 용 한 스 크 립 트 파 일 을 만 들 수 있 을 것 이 다 .

벌 레

runscript는 minicom용 으 로 고 안 , 작 성 되 었 기 때 문 에 , 다 른 곳 에 서 는 제 대 로 동 작 하 지 않 을 수 있 다 .

만 든 이

Miquel van Smoorenburg, <miquels [AT] drinkel.org>