как получить код возврата бинарного sftp, когда я использую сценарий bash для предоставления пароля команде SFTP

Я пытаюсь использовать ожидание в сценарии bash, чтобы указать пароль SFTP и ввести другие команды. Я пытаюсь получить код возврата бинарного SFTP.

Мой тестовый скрипт:

#!/bin/bash

USER=$1
HOST=$2
PASSWD=$3
PORT=$4
FILEIN=$5
FILEOUT=$6
ACTION=$7

CR_FTP=`/usr/bin/expect <<EOF | tee -a log.log
spawn sftp -v -oPort=$PORT $USER@$HOST
expect "password:"
send "$PASSWD\r"
expect "sftp>"
send "ls\r"
expect "sftp>"
send "$ACTION $FILEIN $FILEOUT\r"
expect "sftp>"
send "bye\r"
EOF`

echo " -------------------- $CR_FTP --------------------------"

person damdr    schedule 05.04.2012    source источник


Ответы (1)


...
send "bye\r"
expect eof
set details [wait]
puts "sftp exit status=[lindex $details 3]"
EOF`

См. http://www.tcl.tk/man/expect5.31/expect.1.html

person glenn jackman    schedule 05.04.2012