
Macでbashを介してグラフィカル環境にあることを確認しようとしています。
目的は、両方のケースを処理できるbashスクリプトにif / else構造を持つことです。
ケース1:コマンドラインからウィンドウを開くことができます。
ケース2:コマンドラインでウィンドウを開くことができません。
答え1
Finderが実行されているかどうかを確認するだけで十分であると仮定すると、次のようになります。
if pgrep -qx Finder; then
echo 'Finder is running'
else
echo 'Finder is not running'
fi
一部のXサーバー(macOSでは一般的ではありません)を実行していて、現在のセッションが接続されていることを確認したい場合は、
if [ -n "$DISPLAY" ]; then
echo 'In X'
else
echo 'Not in X'
fi
どちらのテストも非常に素朴ですが、少なくとも最も基本的なケースをカバーしています。