【问题标题】:Is there a way to prepend a command with a variable assignment like in bash?有没有办法像 bash 一样在命令前添加变量赋值?
【发布时间】:2014-04-02 18:08:17
【问题描述】:

在 bash 中可以写

CFLAGS="-O2" rvm install 2.0.0

使用特定的 CFLAGS 运行 rvm 。无论如何在fish shell 中做同样的事情吗?

我知道set -x,但这并不完全相同,因为将为整个会话设置环境变量,而不仅仅是为该命令设置。

【问题讨论】:

  • 不熟悉鱼,但可以试试/usr/bin/env FOO=BAR command
  • 如果你把它作为答案,我会接受它,因为它有效。

标签: fish


【解决方案1】:

According to the fish FAQ,要么使用:

env CFLAGS="-O2" rvm install 2.0.0

(不适用于 fish 内置函数或函数,仅适用于外部命令),或

begin
    set -lx CFLAGS="-O2"
    rvm install 2.0.0
end

(有点笨拙;GitHub issue #438 上有改进建议)。

【讨论】:

    【解决方案2】:

    您可以为此使用env 命令:

    env FOO=BAR command
    

    将运行 command 并将环境变量 FOO 设置为 BAR。

    【讨论】:

    • 我最后将另一个标记为接受的答案,因为它包含更多信息和替代语法。
    猜你喜欢
    • 1970-01-01
    • 2021-10-22
    • 2020-12-29
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 2020-05-12
    • 2012-10-06
    • 1970-01-01
    相关资源
    最近更新 更多