Skip to content
Advertisement

How to check if currently running shell is BusyBox

I tried different variants

echo $0
echo $shell
echo $SHELL
ps -p $$

but none of them can give a distinctive output. I can do something like this but it’s ugly and hackish:

if ls --help 2>&1 | grep BusyBox; then
    echo "it is BusyBox"
else
    echo "it is NOT BusyBox"
fi

Advertisement

Answer

Another way requiring Linux and readlink:

#!/bin/ash
exe=`exec 2>/dev/null; readlink "/proc/$$/exe"`
case "$exe" in
*/busybox)
    echo "It's a busybox shell."
    ;;
esac
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement