带有选项的符号链接

带有选项的符号链接

是否可以创建一个指向可执行文件的符号链接,该可执行文件使用特定选项/参数来执行它?

我知道一种解决方法是在其中一个 PATH 目录中创建一个 bash 脚本,但是我可以通过符号链接以某种方式实现它吗?

编辑:感谢您的回答,在我的情况下,别名无法完成这项工作,因为我正在寻找一种从 dmenu 启动 matlab 的方法,并且至少在 arch matlab 上首先只能从终端调用。由于 dmenu 不考虑别名,所以它不起作用..我应该让我的问题更清楚。

答案1

不,符号链接是一种引用另一个文件的路径的文件类型。

现在,如果你这样做:

ln -s /bin/cat foo

并调用foo为:

$ ./foo -A /proc/self/cmdline
./foo^@-A^@/proc/self/cmdline^@

你会注意到第一的cat/收到的论点foo./foo或不是cat。因此,在某种程度上,通过该符号链接,我们收到了cat不同的第一的争论。这可能不是你想要的第一的尽管有争论。

使用 shell 脚本包装器是解决这个问题的典型方法。但你不需要bash为此使用。您的系统标准sh足以满足以下要求:

#! /bin/sh -
exec /path/to/my/executable --extra-option "$@"

其他选项包括在/ ... 中为其定义一个aliasor 函数~/.bashrc~/.zshrc

答案2

据我了解,你想要让我们说,例如调用script.sh并使其运行script.sh arg1,这样你就可以使用别名来做到这一点,就像grep在linux中一样,实际上当你在ubuntu中调用它时,你调用grep --color=auto。

为此,创建一个别名,并根据您的发行版将其放入正确的文件中,例如在 ubuntu 中,您可以将其放入~/.bashrc文件中

alias grep='grep --color=auto'
alias script.sh='script.sh arg1'

欲了解更多信息:http://www.hostingadvice.com/how-to/set-command-aliases-linuxubuntudebian/

相关内容