【发布时间】:2019-03-15 21:16:54
【问题描述】:
问题:Linux下环境变量PWD是否总是独立于命令shell定义的(忽略非命令shell)?换句话说,像“ls $PWD”这样的命令会一直运行吗?
【问题讨论】:
-
我不知道任何称为“PMD”的标准环境变量。你的意思是“残疾人”吗?
-
是的,对不起,我的意思是 PWD。我已经纠正了这一点。谢谢
-
我宁愿依赖
pwd或pwd -P命令的输出。如ls $(pwd)。 -
@Tanktalus
pwd -P确实很有用,但是对于ls $(pwd),如果当前目录包含空格或其他特殊字符,除非你这样做ls "$(pwd)" -
@Tanktalus,
ls "$(pwd)"执行起来比ls "$PWD"慢得多——前者需要一个子shell(因此,需要创建一个管道对和一个fork()in bash)才能获得输出pwd在子进程中运行的副本;在后者中,唯一的子进程是ls本身的副本。
标签: linux shell environment-variables