bash - 命令 "PWD=/proc/self/cwd another_executable "是什么意思?

标签 bash android-source

使用以下命令构建 AOSP 9.0.0_r30 源时:

$ make clean
$ make showcommands -j8 > ~/BuildAndroid.txt

~/BuildAndoird.txt中有这样的命令行:

[ 58% 62374/106553] PWD=/proc/self/cwd prebuilts/clang/host/linux-x86/clang-4691093/bin/clang++ ........

我想这是一个bash命令,但为什么在“prebuilts/clang/host/linux-x86/clang-4691093/”之前有“PWD=/proc/self/cwd”和一个空格(不是;或&&) bin/clang++"?这是什么意思,我认为这对于bash来说是不合法的,因为空格意味着后面的文本是参数而不是命令。

另一个问题是,“/proc/self/cwd”是什么,它是一个标准的proc节点吗?

一些实验:

$ VAR=123
$ VAR=456 echo $VAR
 123
$ echo $VAR
 123

所以这确实是合法的,但是什么意思呢?

最佳答案

执行命令

prebuilts/clang/host/linux-x86/clang-4691093/bin/clang++

但是在为此命令设置环境时,它将环境变量PWD设置为值/proc/self/cwd。请注意,这仅影响 clang++ 进程的环境,而不影响 shell 脚本的环境/变量空间。

关于bash - 命令 "PWD=/proc/self/cwd another_executable "是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55351078/

相关文章:

bash - 关于命名管道、grep 和文件重定向的重定向行为

android - Android源码构建#ifdefs在编译中是如何工作的

android - 如何在android中以编程方式使用蓝牙HFP配置文件?

android - AOSP 阻止安装来自未知来源的应用程序

bash - 在 bash shell 中对文件进行排序

linux - bash 管道处理

Bash 变量终止脚本执行

android - 如何从REMOTE_SUBMIX中排除STREAM_SYSTEM

android - 构建 Android 源代码 : error when executing mm?

bash - 如何在 Dockerfile 的 CMD 中使用 bash-only 语法?