首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >stty:标准输入:不适合设备的ioctl

stty:标准输入:不适合设备的ioctl
EN

Stack Overflow用户
提问于 2010-10-27 19:39:17
回答 2查看 22.5K关注 0票数 3
代码语言:javascript
复制
perl script.pl --f1="t1" --f2="t2" --f3="t4" --f4 < /home/joe/a.txt 

script.pl

代码语言:javascript
复制
use Getopt::Long;
my ($f1, $f2, $f3, $f4) ;
GetOptions (
            'f1=s' => \$f1,
            'f2=s' => \$f2,
            'f3=s' => \$f3,
            'f4' => \$f4, );
if ($f1) {
    system('stty -echo');
    print "Password:";
    $pwd = <STDIN>;
    system('stty echo');
}

我得到了这个错误:

代码语言:javascript
复制
stty: standard input: Inappropriate ioctl for device
Password:stty: standard input: Inappropriate ioctl for device

这是什么错误?我该如何解决它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-27 20:28:28

我认为问题是您正在从重定向的STDIN读取(因为您

代码语言:javascript
复制
$ perl -e 'system("stty -echo");' </tmp/foo
stty: standard input: Inappropriate ioctl for device

您可能应该将文件作为参数传递给脚本。

票数 3
EN

Stack Overflow用户

发布于 2020-05-20 07:02:31

这条消息对用户和程序员来说是一个痛苦的。它会污染STDOUT,有时会连续污染3次。

是没有办法抑制它的的,即使是搞乱stty -echo之类的东西。

唯一的解决方案是将所有错误重定向到 /dev/null

代码语言:javascript
复制
./myscript <<< "some stuffs" 2> /dev/null
Or similary
echo "stuffs" | ./myscript 2> /dev/null

恼人,因此丢弃所有潜在的错误,这是根本不想要的

代码语言:javascript
复制
not wanted at all.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4032790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档