bash & mono: проверьте, можно ли запустить exe - PullRequest
0 голосов
/ 21 ноября 2018

Я видел несколько опций, чтобы проверить, существует ли команда в 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 успешно запущен». не отображается , хотя на выходе терминала отображается ожидаемое сообщение справки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...