web-dev-qa-db-ja.com

SSHリモート-ローカル端末にエコーを表示

以下は、条件がsshで失敗した場合に、ローカル端末にテキストをechoしたいスクリプトの一部です。

/usr/bin/sshpass -p $PASSWORD /usr/bin/ssh -t  -o "StrictHostKeyChecking no" root@$IP -p $PORT '
    cd $PATH;
    [ ! -d temp ] && mkdir temp;
    for new_file in '${NEW_FILE[@]}'
    do
        [  -f $new_file ] && mv -f $new_file temp/$new_file-'$DATE'
        DOWNLOAD=$(wget --no-check-certificate '$URL'/$new_file > /dev/null 2>&1)
        if [ '$?' -ne '0' ]; then
            mv temp/$new_file-'$DATE' '$PATH'/$new_file
            echo "$new_file download failed! please check and re-run the script"
        else
            chmod +x $new_file
        fi
    done;'

echoを除いて残りの機能はうまく機能します...

echoからローカル端末にsshすることは可能かどうか教えてください。

1
Siva

個々のコマンドとその出力を選択的に表示するには、次のようなものを使用できます。

sh -vc 'echo \"Some text\"'

ネストされた引用はすぐに神経質になり始める可能性がありますが。

2
user292447

ssh -t

マニュアルページから:

     -t      Force pseudo-terminal allocation.  This can be used to execute 
arbitrary screen-based programs on a remote machine, which can be very useful, e.g. 
when implementing menu services.  Multiple -t options force tty allocation, even if
ssh has no local tty.
0
nicolai.tesela