Shell-Script

Concalc - “tcsetattr 錯誤:設備的 ioctl 不合適”

  • January 15, 2018

在 bash 腳本中,我使用以下內容:

#!/bin/bash

calc=$(concalc "$*")

printf "%s\n" "$calc"

我確實得到了我想要的結果,但總是出現以下錯誤消息:

tcsetattr error: Inappropriate ioctl for device

有誰知道如何擺脫這個?當我單獨使用concalc它時沒問題,但只要我在 acommand-substitution或 a中使用它,pipe我就會收到此消息。

它似乎堅持設置一些終端屬性,比如禁用迴聲,不管它執行的模式(互動與否)。我認為它在某種程度上對腳本有用,因為它在終端上在設置和重置它之間沒有做任何事情。

除了修復程式碼之外,您還可以將錯誤重定向:

calc=$(concalc "$*" 2>/dev/null)

引用自:https://unix.stackexchange.com/questions/417362