Bash スクリプトでは、次を使用します。
#!/bin/bash
calc=$(concalc "$*")
printf "%s\n" "$calc"
目的の結果が得られましたが、常に次のエラーメッセージが表示されます。
tcsetattr error: Inappropriate ioctl for device
誰もこれを削除する方法を知っていますか?単独で使用する場合は問題ありませんが、aやaで使用するconcalc
とすぐにこのようなメッセージが表示されます。command-substitution
pipe
答え1
実行モード(インタラクティブまたは非インタラクティブ)に関係なく、エコー無効などの一部の端末プロパティ設定に固執するようです。設定とリセットの間に端末で何もしないので、スクリプトにいくつかの用途があるとします。
コードの修正に加えて、エラーをリダイレクトできます。
calc=$(concalc "$*" 2>/dev/null)