スクリプトの実行時に自動解像度を出力するように変数を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
接続が失敗することがありますのでご注意ください。