bash shell 上的命令指定的“ keyword ”选项到底有什么作用set
?
set -o keyword
或者
set -k
一个简单的例子就足够我理解了。
通常,要为命令注入环境变量,您可以在命令之前对名称进行赋值,如下所示:
VARIABLE=value bash -c 'echo "$1 $VARIABLE"' bash hello
Run Code Online (Sandbox Code Playgroud)
这将运行bash -c 'echo "$VARIABLE"' bash hello
并设置为该命令环境中的VARIABLE
字符串。value
在这种情况下,该命令将打印hello value
(hello
来自内联脚本的第一个命令行参数,并且value
来自环境变量)。
使用set -o keyword
(或set -k
) in bash
(这是一个非标准 shell 选项),允许在命令行的任何位置进行赋值:
VARIABLE=value bash -c 'echo "$1 $VARIABLE"' bash hello
Run Code Online (Sandbox Code Playgroud)
我从未见过这个选项“在野外”使用过,我假设它只在非常特定的情况下很少使用,因为它从根本上改变了命令的解析方式。
归档时间: |
|
查看次数: |
11948 次 |
最近记录: |