UbuntuまたはDebianで機能するように、ターミナルまたはデフォルトアプリ(ブラウザ、ターミナル)のデフォルト変数を使用してコマンドを作成する方法
たとえば、Ubuntu mateにはmate-terminalがあります。欠陥のあるターミナルとブラウザを使用して、各ディストリビューションで開くコマンドを作成するにはどうすればよいですか?したがって、このコマンドラインでは、mate-terminalとfirefoxはありませんが、ターミナルまたはブラウザのディストリビューションユーザーのデフォルトアプリのラッパーです。
mate-terminal -- bash -c 'sleep 2; dpkg -S "\/bin/$(xprop WM_CLASS | cut -d "\"" -f2)"; sleep 5; firefox'
コマンドがディストリビューションターミナルアプリで実行されるように、デフォルトのアプリ変数またはラッパーを見つける方法デフォルトのブラウザまたはテキストエディタの変数を見つける方法は?
複数のプラットフォーム/ディストリビューションで同じコマンドを実行する必要がある場合は、同じコマンドのカスタマイズされたコピーを作成し、最初のコマンドが失敗した場合に次のコマンドを実行しようとする||
演算子でそれらを分離するという回避策があります。
mate-terminal
のコマンド:
mate-terminal -- bash -c 'sleep 2; echo "hi"; sleep 5; firefox'
gnome-terminal
のコマンド:
gnome-terminal -- bash -c 'sleep 2; echo "hi"; sleep 5; firefox'
どちらかの端末で実行されるコマンド:
mate-terminal -- bash -c 'sleep 2; echo "hi"; sleep 5; firefox' || gnome-terminal -- bash -c 'sleep 2; echo "hi"; sleep 5; firefox'
どちらかの端末で実行され、firefox
、google-chrome
、またはchromium
を起動するコマンド:
mate-terminal -- bash -c 'sleep 2; echo "hi"; sleep 5; firefox || google-chrome || chromium' || gnome-terminal -- bash -c 'sleep 2; echo "hi"; sleep 5; firefox || google-chrome || chromium'
ただし、コマンドを正しく実行する方法を見つけるには、ターゲットプラットフォームを調べる必要があります。
最高の幸運
別のディストリビューションがWebブラウザーとターミナルエミュレーターに優先アプリをどのように設定するかについてはよくわかりませんが、Xfceデスクトップ環境ではそうです。 exo-utils
パッケージをインストールすれば、他のDEでも同じことができるでしょう。
優先アプリケーションは、実行することで設定されます
exo-preferred-applications
そして、あなたの例のコマンド(その目的は私には不明です)は次のように定式化されます:
exo-open --launch TerminalEmulator bash -c 'sleep 2; dpkg -S "\/bin/$(xprop WM_CLASS | cut -d "\"" -f2)"; sleep 5; exo-open --launch WebBrowser; read'
read
は、Webブラウザーがターミナルウィンドウで閉じる可能性があるために必要です。
Debianの代替システムを使用してコマンドを書き直します。
x-terminal-emulator -e bash -c 'sleep 2; dpkg -S "\/bin/$(xprop WM_CLASS | cut -d "\"" -f2)"; sleep 5; x-www-browser'
ターミナルエミュレータが実行するコマンドに-e
を使用していることに注意してください。
デフォルトのターミナルエミュレータを変更する場合は、次を実行します。
Sudo update-alternatives --config x-terminal-emulator
それぞれ、実行するデフォルトのWebブラウザーを変更するには
Sudo update-alternatives --config x-www-browser