bash 命令前缀的多个 shell 参数分配
在 bash 手册第 3.7.4 节中,它指出
可以增强任何简单命令或功能的环境 暂时通过在其前面加上参数分配作为前缀,如所述 在 Shell 参数 [第 3.4 节] 中。
一个简单的例子是
MYVAR=MYVALUE mycommand
我已经阅读了第 3.4 节,但我仍然不知道如何指定多个参数分配。注意,3.7.4中的陈述肯定是复数,暗示这是可能的。
以下似乎不起作用:
MYVAR1=abc MYVAR2=xyz mycommand
我正在使用 bash 版本 4.1,2009 年 12 月 23 日。
In the bash manual section 3.7.4, it states
The environment for any simple command or function may be augmented
temporarily by prefixing it with parameter assignments, as described
in Shell Parameters [section 3.4].
And a trivial example of this is
MYVAR=MYVALUE mycommand
I have read section 3.4 and I still can't figure out how to specify multiple parameter assignments. Note that the statement in 3.7.4 is definitely plural, implying that it is possible.
The following does not seem to work:
MYVAR1=abc MYVAR2=xyz mycommand
I am using bash version 4.1, 23 December 2009.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它应该有效。这是可接受的语法。这是一个示例:
更新:如果您在简单命令之前添加所需的变量,则答案中给出的更新示例将起作用:
It should work. That is acceptable syntax. Here's an example:
UPDATE: Your updated example given in your answer will work if you precede the simple command with the variables as required:
哎呀,我的例子过于简单了。这工作正常:
但事实并非如此:
关键的区别是这句话:
for
命令是一个复杂的命令,而不是“简单的命令或函数”,根据 第 3.2 节。Oops, my example was over-simplified. This works fine:
but this does not:
and the key difference is this phrase:
A
for
command is a complex command, not "a simple command or function", according to section 3.2.我从未见过使用这种方法。
您始终可以将常规参数传递给脚本。
更新新示例:
这在两种情况下都有效:
I've never seen that method used.
You could always just pass in regular parameters to the script.
Updating for new example:
This works in both situations: