Expect 명령에서 생성 실패를 감지하는 방법

Expect 명령에서 생성 실패를 감지하는 방법

나는 다음 스크립트를 작성했습니다.

#!/bin/sh

expect -c "
spawn cu -l /dev/ttyUSB0 -s 115200
expect \"foo\"
send \"bar\"
"

echo $?

없이 실행할 때 /dev/ttyUSB0:

$ ls /dev/ttyUSB0
ls: cannot access '/dev/ttyUSB0': No such file or directory

$ ./test.sh
spawn cu -l /dev/ttyUSB0 -s 115200
cu: open (/dev/ttyUSB0): No such file or directory
cu: /dev/ttyUSB0: Line in use
send: spawn id exp4 not open
    while executing
"send "bar""
0

expect제품을 반품하는 이유는 무엇 입니까 0? 결함을
감지하는 방법은 무엇입니까 spawn?

답변1

당신은 테스트할 수 있습니다foo 그리고 eof

#!/bin/sh

expect <<'END_EXPECT'
    spawn cu -l /dev/ttyUSB0 -s 115200
    expect {
        eof {
            puts stderr "Cannot open cu"
            exit 1
        }
        "foo"
    }
    send "bar"
END_EXPECT

echo $?

예상되는 코드를 포함하기 위해 인용된 문자열을 사용하는 것보다 여기에 있는 설명서를 사용하는 것이 더 쉽다는 것을 알았습니다. 여기에 인용된 문서는 \$expect_variables탈출에 대해 걱정할 필요가 없음을 의미합니다.

관련 정보