我已经看到了几种检查bash(for instance here on stackoverflow)中是否存在命令的选项。我也知道如何检查文件是否存在/是否可执行。 不幸的是,这些选项都没有起作用。
我的问题是:
如果应使用mono在脚本中运行exe文件,如何在运行命令之前确保获得正确的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
为grep回显3252,但对于使用mono的命令回显1,尽管它应该更多。 (对于诸如gerpejsfadjl之类的不存在的命令,它也会返回1。)
if [ $( ${BASH_ALIASES[myExe]} --help 2>/dev/null | wc -c ) -eq 0 ]; then
echo "Program myExe should be installed."
exit
fi
始终退出并显示“应该安装Program myExe。”,尽管它存在并且可以使用。
if ! command -v myExe >/dev/null 2>&1 ; then
echo "Program myExe should be installed."
fi
始终退出并显示“应该安装Program myExe。”,尽管它存在并且可以使用。
我还尝试将返回的错误代码与$?
一起使用,但它返回的是255而不是0。
最后,我也尝试调用命令
myExe --help && echo "MyExe ran successful."
但是“ MyExe运行成功。” 未显示,尽管终端的输出显示了预期的帮助消息。