echo
以下は、SSHの条件が失敗した場合にローカル端末にいくつかのテキストを送信したいスクリプトの一部です。
/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
単一のコマンドとその出力を選択的に表示するには、次のようなものを使用できます。
sh -vc 'echo \"Some text\"'
入れ子になった参照はすぐに神経を動かすことができます。
答え2
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.