Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
shell:在命令之前设置变量_Shell - Fatal编程技术网

shell:在命令之前设置变量

shell:在命令之前设置变量,shell,Shell,这是一个示例shell命令。shell语法(在命令之前设置变量)的确切含义是什么?它在您正在运行的命令的环境中设置该变量的值,而不会永久影响shell的环境。回想一下,所有子shell都从父进程继承其环境HADOOP\u ROOT\u LOGGER=DEBUG,console只需添加一个变量,该变量将成为子shell环境的一部分,而不会在命令完成后仍留在父环境中。foo=bar echo$foo此打印为空。为什么不打印此栏?@newbee,因为在将其传递给echo之前,shell会先展开$foo

这是一个示例shell命令。shell语法(在命令之前设置变量)的确切含义是什么?

它在您正在运行的命令的环境中设置该变量的值,而不会永久影响shell的环境。

回想一下,所有子shell都从父进程继承其环境
HADOOP\u ROOT\u LOGGER=DEBUG,console
只需添加一个变量,该变量将成为子shell环境的一部分,而不会在
命令完成后仍留在父环境中。foo=bar echo$foo此打印为空。为什么不打印此栏?@newbee,因为在将其传递给
echo
之前,shell会先展开
$foo
echo
甚至是bash中的一个内置命令,因此我不能100%确定它是否看到更新的环境。试试这个:
foo=bar perl-e'print$ENV{foo},“\n”
HADOOP_ROOT_LOGGER=DEBUG,console hadoop fs -text /foo/bar