仅针对单个命令更改环境非常简单:
DB=postgresql some_command --with --arguments
不幸的是,我必须在远程服务器上执行此操作,并且由于部署的限制,我只能编辑 some_command 之后的内容。下面的代码很好,但并不能解决问题(在 Bash 中):
some_command --with --arguments DB=postgresql
还有其他 Bash hack 可以实现这一目标吗?
最佳答案
这是另一个想法,恐怕有点疯狂:
some_command --do-nothing `DB=postgresql some_command --now-really`
这个想法是,反引号命令实际上会执行您想要的操作。第一个 some_command
仅存在,因此该命令将按照您的需要启动。您应该找到可以使其执行无害操作的参数。
如果您没有与 --do-nothing
参数等效的内容,则可以执行以下操作:
some_command `DB=postgresql some_command --now-really; ps-grep-kill`
其中 ps-grep-kill
是这些命令的组合(我将详细信息作为练习),它找到即将运行 some_command
的父进程,并在它有机会之前杀死它(但在反引号的 some_command
已经运行之后)。
关于linux - 命令后更改环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8795373/