是否可以仅为给定应用程序指定环境变量?这样当应用程序启动时,环境变量就会自动设置('VAR=VALUE myapp' 不是我想要的)。
实际问题是,我希望 wine 始终以特定的 LC_ALL 设置启动,但不想全局更改 LC_ALL。有很多地方可以启动 wine(终端、gnome 文件关联、菜单快捷方式),在所有这些地方手动设置 LC_ALL 似乎太繁琐了。
答案1
另一种可能性是改变你的 PATH 以便例如/usr/local/bin
首先出现,然后创建一个/usr/local/bin/wine
像这样:
#!/bin/sh
export FOO=bar
/usr/local/bin/wine "$@"
我不知道这些“gnome 文件关联”和“菜单快捷方式”是如何工作的。如果他们硬编码完整路径而不是依赖$PATH
这个解决方案将无法工作。
答案2
你可以做这样的事情:
将主要的 wine 二进制文件从wine
重命名为wine.real
。创建一个脚本来代替 wine 二进制文件,如下所示。
#!/bin/bash
FOO=bar
export foo
wine.real $* &
答案3
您还可以创建别名,这样您就不需要更改软件管理器管理的内容。例如,在您的 ~/.bash_profile 中
alias wine='FOO=bar; \wine'
防止\
抑制别名扩展以防止无限递归。
编辑:此解决方案在您提到的所有情况下都不起作用。