在 bash 脚本中我使用以下内容:
#!/bin/bash
calc=$(concalc "$*")
printf "%s\n" "$calc"
我确实得到了我想要的结果,但总是出现此错误消息:
tcsetattr error: Inappropriate ioctl for device
有谁知道如何摆脱这个?当我concalc
单独使用时,没有问题,但一旦我在 acommand-substitution
或 a中使用它pipe
,我就会收到此消息。
答案1
它似乎坚持设置一些终端属性,例如禁用回显,无论其运行模式如何(交互式或非交互式)。我认为它对脚本有某种用途,因为它在设置和重置之间不会在终端上执行任何操作。
除了修复代码之外,您还可以将错误重定向:
calc=$(concalc "$*" 2>/dev/null)