次のテストをインストーラースクリプトで記述したい1:
if [ -n "`/etc/grub.d/30_os-prober`" ]; then
install_dual_boot
else
install_linux_only
fi
ただし、30_os-prober
が何らかの理由で完了しなかったために、出力が生成されない可能性もあります。 30_os-prober
がゼロ以外の終了ステータスで失敗した場合、デュアルブートの状況を想定する方が安全です。
30_os-prober
が出力を生成しなかった成功したことを確認するにはどうすればよいですか?
基本的には…と同じような効果が欲しいです。
if [ -n "`/etc/grub.d/30_os-prober`" ]; then
# Do stuff for a dual-boot machine
install_dual_boot
Elif ! /etc/grub.d/30_os-prober >/dev/null; then
# OS probe failed; assume dual boot out of abundance of caution
install_dual_boot
else
install_linux_only
fi
…ただし、同じコマンドを2回実行する必要はありません。
1 背景情報:30_os-prober
には GRUB2 が付属しており、私が書いているスクリプトは [〜#〜] fai [〜#〜] のカスタム構成の一部です。 。
値を変数に割り当ててから、終了ステータスも確認できます。
PROBE_VALUE=`/etc/grub.d/30_os-prober`
if [ "$?" -eq 0 ] && [ -z "$PROBE_VALUE" ]; then
install_linux_only
else
install_dual_boot
fi