Bash スクリプト if - else 条件

Bash スクリプト if - else 条件

インターネットから特定のインストーラーをダウンロードしてインストールし、それを起動するデスクトップ ファイルを作成し、自動的に起動するようにしてからインストーラーを削除する 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インストールされているパッケージのリストを返します。出力のどこかに文字列 が含まれている場合gksugrep戻りコード 0 (true を意味する) が設定され、then節が実行されます。含まれていない場合は、節がelse実行されます。

関連情報