xdg-open
стандартизирован и должен быть доступен в большинстве дистрибутивов.
В противном случае:
eval
это зло, не используйте его.
- Процитируйте ваши переменные.
- Правильно используйте правильные тестовые операторы.
Вот пример:
#!/bin/bash
if which xdg-open > /dev/null
then
xdg-open URL
elif which gnome-open > /dev/null
then
gnome-open URL
fi
Может быть, эта версия немного лучше (пока не проверена):
#!/bin/bash
URL=$1
[[ -x $BROWSER ]] && exec "$BROWSER" "$URL"
path=$(which xdg-open || which gnome-open) && exec "$path" "$URL"
echo "Can't find browser"