首页 > 解决方案 > Bash:stty:标准输入:SSH时设备的ioctl不合适

问题描述

我正在编写简单的 bash 脚本:

#! /bin/bash
echo "IP: $1"
sshpass -p 'pass' ssh -t -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@$1 << EOF
    cd ../
    sed -i -e 's/x=false/x=true/g' file.txt
    echo "*** x has changed! ***"
    cat file.txt
EOF

我像这样运行脚本:

bash test.sh ip(我输入一些服务器IP)。

该脚本有效,但我在终端中收到此消息:

IP: ip
stty: standard input: Inappropriate ioctl for device
*** x has changed! ***
x = true

为什么会出现stty消息?这是什么意思,我怎样才能让它消失?(我尝试了一些我在网上找到的建议,但没有任何帮助)。

谢谢!

标签: bashsshstty

解决方案


添加bash以避免加载初始化文件:

sshpass -p 'pass' ssh -T -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@$1 bash << EOF

你似乎不需要-t,所以使用-T


推荐阅读