是否可以创建一个指向可执行文件的符号链接,该可执行文件使用特定选项/参数来执行它?
我知道一种解决方法是在其中一个 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 "$@"
其他选项包括在/ ... 中为其定义一个alias
or 函数~/.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/