bash - 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消息?这是什么意思,我怎样才能让它消失?(我尝试了一些我在网上找到的建议,但没有任何帮助)。
谢谢!
解决方案
添加bash
以避免加载初始化文件:
sshpass -p 'pass' ssh -T -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no root@$1 bash << EOF
你似乎不需要-t
,所以使用-T
推荐阅读
- react-native - 如何在 react-native-image-picker 的响应正文中获取原始文件名?
- spring-boot - 如何编写HQL查询数据还包括桥表列?
- node.js - 如何在我的 package.json 中指定只从 repo 下载一个文件或文件夹,而不是整个文件?
- java - 在较低级别的表上使用继承
- python - 如何处理付款错误。并将订阅返回到其在条带支付中的原始状态?
- javascript - SDK中msal浏览器包的单元测试
- .net-core - NServicebus 无法解析处理程序中接口的服务
- python - 当对象类型为无时,带有模块“re”和“check_output”的 Python3.9
- javascript - 在 JS 中以 *blocking* 方式使用 YouTube API
- arrays - 检查最后一列中的数组内容时,For Loop 未按预期工作