sh -c 'if ! [ -e "/usr/bin/ibus-daemon" ] && [ "x$XDG_SESSION_TYPE" = "xwayland" ] ; then exec env IM_CONFIG_CHECK_ENV=1 im-launch true; fi'
を実行するUbuntu 19.10をインストールした後、このim-launchスタートアップエントリを見つけました
私の質問は、このエントリの目的は何ですか?それを無効にするとどうなるのですか?
_-e
_ファイルを確認_/usr/bin/ibus-daemon
_が存在するかどうか存在は真を意味し、存在は偽を意味します。
_!
_は、上記の値がtrueの場合、上記の値がfalseであることを確認します。何も実行しません。
_[ "x$XDG_SESSION_TYPE" = "xwayland" ]
_これは、ログイン画面でのログイン方法に基づいて、以下のいずれかの値になります。 x11またはウェイランドを選択するセッション。
_"xx11" = "xwayland" "xwayland" = "xwayland"
_
$ XDG_SESSION_TYPEの出力例
_administrator@pratap:~$ echo $XDG_SESSION_TYPE
x11
_
もう一つの例:
_administrator@pratap:~$ echo $XDG_SESSION_TYPE
wayland
administrator@pratap:~$
_
最初の式がfalseでx $ XDG_SESSION_TYPE = xwaylandの場合、コマンド_env IM_CONFIG_CHECK_ENV=1 im-launch true
_を実行します
最初の式がtrueであるか、x $ XDG_SESSION_TYPEがxwaylandと等しくない場合は、何もしません。
_man test
_を参照
_! EXPRESSION
EXPRESSION is false
_
そして
_ -e FILE
FILE exists
_
このコマンドの機能について詳しく読むことができます_then exec env IM_CONFIG_CHECK_ENV=1 im-launch true;
_
_man env
_およびman _im-launch
_を参照
Ubuntu 19.10ではデフォルトで_/usr/bin/ibus-daemon
_が存在します。そのため、コマンドは実行されません。
_env IM_CONFIG_CHECK_ENV=1 im-launch true
_
ファイル_/usr/bin/ibus-daemon
_があり、セッションが_x11
_の場合
ここにIMについての何かがあります
ファイルがない場合は_/usr/bin/ibus-daemon
_で、セッションはwayland
です
これは上記とは異なるものです。つまり、envが適用され、その後連鎖反応が続きます。
したがって、スタートアップリストからこれを無効または有効にしても、このファイルの存在が_/usr/bin/ibus-daemon
_でなく、セッションがwayland
条件を満たしている場合を除き、何も起こりません。