始终在 linux 中调用带有特定标志的二进制文件

Always call a binary with a specific flag in linux

我想知道是否有任何方法可以在 linux 中执行二进制文件,总是带有特定标志。

例如,每当 genisoimage 执行时,我希望它始终以 -allow-limited-size 标志执行。因此,在控制台中发出 genisoimage 会导致 genisoimage -allow-limited-size 运行.

alias 将无法工作,因为二进制文件是从另一个文件调用的

是的!您正在寻找的是 Bash alias.

只需将 alias genisoimage="genisoimage -allow-limited-size" 添加到您的 ~/.bashrc(或 ~/.bash_profile for macOS)文件。

有关 Bash 别名的更多信息,请查看 http://www.tldp.org/LDP/abs/html/aliases.html?cachebusterTimestamp=1466192028407

编辑:鉴于另一个脚本或应用程序调用 genisoimage.

如果从另一个脚本或应用程序调用它,您将不得不更改在 script/application 中解析的 genisoimage。您可以通过以下方式实现这一目标。

首先,创建您自己的 genisoimage,添加您的 -allow-limited-size 标志。这将进入位于 /some/other/path 的名为 genisoimage 的文件,并且必须使其可执行(即 chmod u+x /some/other/path/genisoimage)。假设真正的genisoimage文件位于/bin/genisoimage

#! /bin/bash
/bin/genisoimage -allow-limited-size "$@"

上面添加了所需的标志,并将所有参数传递给原点genisoimage

现在,当您 运行 您的 script/application 时,更改 PATH 变量,以便首先找到您刚刚创建的文件。

$> PATH=/some/other/path:$PATH ./APPLICATION