首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$PWD是否总是等于${:-}:a}

$PWD是否总是等于${:-}:a}
EN

Stack Overflow用户
提问于 2014-08-09 22:00:10
回答 1查看 214关注 0票数 5

给定的

  • 现代Linux/UNIX/OSX
  • zsh 5+
  • setopt chase_links
  • PWD没有被异常设置

代码语言:javascript
复制
[[ "$PWD" == "${${:-.}:A}" ]]

一直都是真的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-11 00:40:46

不,这并不总是正确的:

代码语言:javascript
复制
xvii:~> ls -l foo
lrwxrwxrwx 1 vinc17 vinc17 10 2014-07-05 01:12:06 foo -> bar/subdir/
xvii:~> bash
vinc17@xvii:~$ cd foo
vinc17@xvii:~/foo$ pwd
/home/vinc17/foo
vinc17@xvii:~/foo$ zsh -f
xvii% echo $PWD
/home/vinc17/foo
xvii% setopt chase_links
xvii% echo $PWD
/home/vinc17/foo
xvii% echo "${${:-.}:A}"
/home/vinc17/bar/subdir
xvii% pwd
/home/vinc17/bar/subdir

但是,如果zsh是在没有符号链接段的当前工作目录中启动的,那么当前工作目录在cd (或等效的)之后永远不会有符号链接段,而当前工作目录中的...也是不可能的,因为它们在更改目录时被解析,因此如果目录仍然存在,则$PWD${${:-.}:A}应该是等效的(参见下面)。

在上面的示例中,在cd .之后,zsh将$PWD更新为/home/vinc17/bar/subdir。但是,cd .并不能使这两种表单在所有情况下都等价:

代码语言:javascript
复制
xvii% mkdir my_dir
xvii% cd my_dir
xvii% rmdir ../my_dir
xvii% echo $PWD
/home/vinc17/my_dir
xvii% echo "${${:-.}:A}"
/home/vinc17/my_dir
xvii% pwd
/home/vinc17/my_dir
xvii% cd .
xvii% echo $PWD
/home/vinc17/my_dir
xvii% echo "${${:-.}:A}"

xvii% pwd
.
xvii% echo "$(realpath .)"
.: No such file or directory
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25223490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档