假设您正在分发一个在 Linux 上运行的程序,将其命名为 Foo,该程序的可执行文件名为 foo.exe(因为它是一个 CLR 程序,所以它在 Mono 下运行),它需要同一目录中的几个 DLL,也许更高版本可能需要一些在启动时读取的数据文件等,因此将其重新定位到全局 bin 目录有点麻烦,它实际上更喜欢留在原始目录中……
但是用户更喜欢通过键入foo
而不是来调用该程序mono /path/to/foo.exe
。
提供如此简短的命令的最佳/最常用方法是什么?安装脚本/makefile 是否可以/应该创建一个foo
调用完整路径的一行脚本,并将该一行脚本放在全局 bin 目录中?如果是这样,目标 bin 目录应该是什么,有没有关于如何做到这一点的确切说明?或者有更好的替代方案吗?
编辑:在安装时创建单行脚本的方法似乎效果很好,下面是我最终编写的实际安装脚本:
a@a-desktop:~/ayane$ cat install.sh
#!/bin/sh
echo mono `pwd`/ayane.exe '"$@"' >ayane
chmod +x ayane
mv ayane /usr/local/bin
答案1
我会把链接或脚本放在/usr/local/bin
如果您要启动,foo.exe
只需输入完整路径即可,则可以使用链接/my/path/foo.exe
。另一方面,您需要一个调用的小型 shell 脚本mono /path/to/foo.exe
。
答案2
使用别名
放一些类似
alias foo='mono /path/to/foo.exe'
进入用户 shell 初始化文件。
答案3
我会用文件系统层次标准作为指南,在 中安装您的软件包/opt/package_name
,在 中放置您的包装器脚本,/usr/local/bin
或者允许用户配置这些选择,并在安装时根据这些选择生成包装器脚本。另一种方法是将包装器脚本放在与应用程序相同的目录中,并将应用程序目录添加到PATH
中/etc/profile
,但我认为这不太可取。
答案4
最简单的方法是使用 Bash 别名。不过我不确定向配置文件添加别名是否是正常做法。