Я видел несколько опций, чтобы проверить, существует ли команда в bash (, например, здесь для stackoverflow ).Я также знаю, как проверить, существует ли файл / является исполняемым.К сожалению, ни одна из этих опций не работает.
Мой вопрос:
Если exe-файл должен запускаться в сценарии с использованием mono, как я могу убедиться, что получил правильное расположениеexe-файл перед запуском команды?
В моем скрипте я хочу убедиться, что возможно запустить что-то вроде: mono /home/user/location/of.exe -option=option
Я пробовал:
alias myExe='mono /home/user/location/of.exe'
numCharCommandHelp=$(echo $( myExe --help 2>/dev/null) | wc -c )
echo $numCharCommandHelp
if [ $numCharCommandHelp -eq 1 ]; then
echo "Program myExe should be installed."
exit
fi
повторяет 3252 для grep, но 1 для команд, использующих моно, хотя это должно быть намного больше.(Он также возвращает 1 для несуществующей команды, такой как gerpejsfadjl.)
if [ $( ${BASH_ALIASES[myExe]} --help 2>/dev/null | wc -c ) -eq 0 ]; then
echo "Program myExe should be installed."
exit
fi
Всегда завершается с «Программа myExe должна быть установлена.», Хотя она существует и может использоваться.
if ! command -v myExe >/dev/null 2>&1 ; then
echo "Program myExe should be installed."
fi
Всегда завершает работу с «Программа myExe должна быть установлена», хотя она существует и может использоваться.
Я также пытался использовать возвращенные коды ошибок с $?
, но он возвращает 255 вместо0.
Наконец, я также попытался вызвать команду
myExe --help && echo "MyExe ran successful."
Но «MyExe успешно запущен». не отображается , хотя на выходе терминала отображается ожидаемое сообщение справки.