端末でGUIを起動したときに発生する不快感をどのように排除できますか?

端末でGUIを起動したときに発生する不快感をどのように排除できますか?

私は、グラフィックデスクトップを使用するよりも、ターミナルウィンドウでGUIアプリケーションを起動する方が好きです。一般的な苦情は、開発者がこのタイプの使用を予期しないことが多いため、アプリケーションがstdoutまたはstderrに役に立たない、秘密、または情報のないメッセージを一括印刷することです。 & を使用してバックグラウンドでプログラムを実行すると、ジョブの作成と終了に関するレポートが生成されるため、端末でさらに混乱が発生します。

コマンドライン引数を受け入れてオートコンプリートを処理するこれらの問題の回避策は何ですか?

関連:https://stackoverflow.com/questions/7131670/make-bash-alias-that-takes-parameter

ベストアンサー1

標準エラーを直ちにリダイレクトすることは、以前の/dev/nullエラーメッセージを隠してエラーを診断するのが難しいかもしれないので、悪い考えです。次のzshスクリプトを使用することをお勧めしますstart-app

#!/usr/bin/env zsh
coproc "$@" 2>&1
quit=$(($(date +%s)+5))
nlines=0
while [[ $((nlines++)) -lt 10 ]] && read -p -t 5 line
do
  [[ $(date +%s) -ge $quit ]] && break
  printf "[%s] %s\n" "$(date +%T)" "$line"
done &

ただ実行してみてください:start-app your_command argument ...

スクリプトは最大5秒間最大10行のメッセージを出力します。ただし、アプリケーションが直ちにクラッシュした場合(たとえば、分割エラーのため)、エラーメッセージは表示されません。もちろん、必要に応じてこのスクリプトをさまざまな方法で変更できます。

注:zshで補完機能を使用するには、start-app次のようにします。

compdef _precommand start-app

バッシュから:

complete -F _command start-app

(でおよびexecからtimeコピー/usr/share/bash-completion/bash_completion)。

おすすめ記事