bashのxrandrに変数を渡す

bashのxrandrに変数を渡す

スクリプトの実行時に自動解像度を出力するように変数をxrandrに渡そうとします。

#!/bin/bash
DISPLAY=$(xrandr | grep ' connected' | cut-d' ' -f1)
xrandr --output "$DISPLAY" --auto

出力されます

モニタ DisplayPort-0 を開けません。

以下のように変数を変更すると..

DISPLAY=DisplayPort-0

それでも同じエラーが発生します。

ハードコーディングするか、実際のコマンドを次のように実行する場合にのみ...

xrandr --output DisplayPort-0 --auto

期待どおりに動作しますか?どんなアイデアがありますか?私が疑問に思うのは、xrandrがbashスクリプトで変数を受け入れない理由です。

ベストアンサー1

残念ながら、名前はDISPLAY正しいXサーバーを指すように予約されています。新しいシェルを開き、内容を調べます。

$ echo $DISPLAY
:0

変数には別の名前を使用してくださいDISPLAY。ちなみに、これがスクリプトで小文字の変数名を使用することが推奨される理由でもあります。したがって、あなたの場合は次のようになります。

display=$(xrandr | grep ' connected' | cut -d' ' -f1)

また、同時に2つ以上の画面が接続されることがあり、この場合、xrandr --output "$display" --auto接続が失敗することがありますのでご注意ください。

おすすめ記事