내 PATH를 업데이트하기 위해 bash 스크립트에서 Expect를 어떻게 사용합니까? [폐쇄]

내 PATH를 업데이트하기 위해 bash 스크립트에서 Expect를 어떻게 사용합니까? [폐쇄]

저는 SSH를 사용하여 대학 서버에 연결하고 있습니다. 하지만 R로그인할 때마다 경로를 업데이트해야 합니다 . 그래서 저는 그것을 자동화하고 싶고 지금까지 다음 스크립트를 가지고 있습니다:

#!/usr/bin/expect -f

spawn ssh user@server

expect "password:"
send "<pass>\r"
send 'export PATH=/usr/local/R-3.1.2/bin/:$PATH" R "$@"\r"
send 'R\r'

interact

감사해요.

답변1

작은 따옴표에는아니요Expect(Tcl의 확장)에서의 특별한 의미. TCL은다른 따옴표 문자.

원격 연결을 설정하고 경로를 설정하고 나머지 매개변수를 사용하여 R을 호출한다고 가정합니다. Tcl은 명령줄 인수를 $argv변수 에 저장합니다.

#!/usr/bin/expect -f

spawn ssh user@server

expect "password:"
send "<pass>\r"
# $PATH is already exported
send "PATH=/usr/local/R-3.1.2/bin/:\$PATH\r"
send [join [concat R $argv]]
sent "\r"

# do you then want to drop into an interactive R session?
send 'R\r'
interact

관련 정보