インターネットから特定のインストーラーをダウンロードしてインストールし、それを起動するデスクトップ ファイルを作成し、自動的に起動するようにしてからインストーラーを削除する bash スクリプトを作成したいのですが、スクリプトでチェックしたいことがいくつかあります。次の点です。
インストーラーの存在(存在しない場合はダウンロードし、そうでない場合は実行可能に設定します)
以前のインストールの存在 (存在する場合は、アンインストーラーの実行可能ファイルを設定し、実行して残っているものをすべて削除します。存在しない場合は次の手順に進みます)
gksuパッケージの状態はapt list | grep gksuで確認できます(インストールされている場合は次のステップに進み、そうでない場合はインストールしてください)。
gksu example.run の出力 (「GNOME_SUDO_PASS」行がある場合は gksu example.run を繰り返し、ない場合は次の手順に進みます)
答え1
条件: installer - ls . | grep example.runchmod +x pelda.run else wget download/link/of/example.run
上記を私が理解したところによると、次のように翻訳されます。
if [ -f example.run ]
then
chmod +x pelda.run
else
wget download/link/of/example.run
fi
[ -f example.run ]
は、コマンドの使用例ですtest
。指定されたファイルがexample.run
存在する場合、テスト コマンドは戻りコード 0 (true を意味する) を設定します。存在しない場合は、戻りコード 1 (false を意味する) を設定します。
条件: gksu - apt list --installed | grep gksu、!が存在する場合は sudo apt install gksu、そうでない場合は gksu pelda.run
上記を私が解釈すると、次のようになります。
if apt list --installed | grep gksu
then
gksu pelda.run
else
sudo apt install gksu
fi
grep
ここでは、一致が見つかったかどうかに応じて戻りコードを設定する という事実を使用しています。 は、apt list --installed
インストールされているパッケージのリストを返します。出力のどこかに文字列 が含まれている場合gksu
、grep
戻りコード 0 (true を意味する) が設定され、then
節が実行されます。含まれていない場合は、節がelse
実行されます。