如何在整个会话中覆盖可执行文件?

如何在整个会话中覆盖可执行文件?

我有一个应用程序,我想使用一些在运行时计算的配置来执行。为了实现这一点,我可以简单地使用别名,它工作得很好,问题是可执行文件本身当然仍然存在,所以如果我从 .desktop 文件、快捷方式或其他任何地方启动应用程序t 终端,则未设置别名,并且我失去了此能力。

我考虑过将可执行文件移动到其他地方的可能性,然后用一个按我想要的方式运行它的 shell 脚本替换它。这个解决方案的问题是更新可能会覆盖它,所以这不是我真正可以做的事情。

有什么建议么?我基本上想改变可执行文件在整个会话中全局运行的方式。

我目前使用的是 Arch Linux KDE。

答案1

你有选择;

  1. 您可以修改 .desktop 文件以包含环境变量、命令行参数/选项或启动时执行的任何内容。
  • 您只需修改exec=.desktop 文件的行

或者,

  1. 您可以创建一个可执行的 sh 脚本,根据需要启动可执行文件,并将其放入您的 PATH 中。
  • 注意:您将为脚本指定一个与可执行文件不同的名称。你应该只保留二进制文件,而不是试图替换、移动它或类似的事情。
  1. 然后编辑 .desktop 文件来执行 sh 脚本(如果需要,也可以将别名指向它)。

任一解决方案都应该可以正常工作。

我在我的系统上使用#2解决方案来处理一些需要设置许多环境变量的wine应用程序,但我无法全局设置(例如:在.bashrc中)...我这样做主要是为了可读性,因为修改带有一长串变量的 .desktop 看起来不太舒服,但从脚本中读取要容易得多。

答案2

避免升级扰乱更改的一个简单方法是在系统目录之外的其他位置进行这些更改。

在您的主目录中为您自己的程序创建一个目录,例如~/bin.添加该目录$PATH并将 shell 脚本放在那里和/或将桌面链接指向那里。

相关内容