grub-mkconfig: Use portable "command -v" to detect installed programs
The "which" utility is not guaranteed to be installed either, and if it is, its behavior is not portable either. Conversely, the "command -v" shell builtin is required to exist in all POSIX 2008 compliant shells, and is thus guaranteed to work everywhere. Examples of open-source shells likely to be installed as /bin/sh on Linux, which implement the 11-year-old standard: ash, bash, busybox, dash, ksh, mksh and zsh. A side benefit of using the POSIX portable option is that it requires neither an external disk executable, nor (because unlike "which", the exit code is reliable) a subshell fork. This therefore represents a mild speedup. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
parent
b78d570a36
commit
28a7e597de
2 changed files with 2 additions and 2 deletions
|
@ -34,7 +34,7 @@ if test "x$grub_mkrelpath" = x; then
|
||||||
grub_mkrelpath="${bindir}/@grub_mkrelpath@"
|
grub_mkrelpath="${bindir}/@grub_mkrelpath@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if which gettext >/dev/null 2>/dev/null; then
|
if command -v gettext >/dev/null; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
gettext () {
|
gettext () {
|
||||||
|
|
|
@ -30,7 +30,7 @@ if [ "x${GRUB_DISABLE_OS_PROBER}" = "xtrue" ]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "`which os-prober 2> /dev/null`" ] || [ -z "`which linux-boot-prober 2> /dev/null`" ] ; then
|
if ! command -v os-prober > /dev/null || ! command -v linux-boot-prober > /dev/null ; then
|
||||||
# missing os-prober and/or linux-boot-prober
|
# missing os-prober and/or linux-boot-prober
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue