티스토리 뷰


expect prompt에서는 아래와 같은 명령어가 성공합니다.

expect1.1> send [cat hello]
world
expect1.2> 

hello 라는 파일의 내용인 world가 정상적으로 출력 됩니다.


하지만 shell script 내부에서 사용하는 경우는 어떨까요?

#!/bin/sh
expect << EOF
send [cat hello]
EOF

동일한 내용으로 수행했을 때 결과는 아래와 같습니다.

invalid command name "cat"
while executing "cat hello"
invoked from within "send [cat hello]"

shell script안에서 위와 같이 expect로 shell 명령어를 사용하려면 exec를 사용해야 한다고 합니다.

#!/bin/sh
expect << EOF
send [exec cat hello]
EOF

근본적인 이유는 좀 더 봐야겠지만 이로써 expect를 더 잘 활용할 수 있겠네요.

'개발 > Shell Script' 카테고리의 다른 글

[sh] 디렉토리 사이즈 확인  (2) 2016.02.26
[sh] 터미널 명령어 결과를 배열로 사용  (0) 2016.02.02
[sh] 문자열 포함 여부 검사  (0) 2015.12.15
[sh] "$*" 과 "$@"의 차이  (2) 2015.11.30
[sh] 랜덤 숫자 뽑기  (0) 2015.11.24
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday