有人可以解释echo "${PWD/#$HOME/~}"
在PWD
评估为$HOME
的情况下如何打印~
。千万不要使用echo来阅读这种替换。这里发生了什么?使用shell脚本进行说明
0
A
回答
1
这不是echo
这是你的车壳使Parameter Expansion using ${parameter/pattern/string}
syntax:
的
pattern
被扩展为一个模式,就像文件名扩展 。参数被展开,模式 与其值的最长匹配被替换为字符串。如果模式以‘/’
, 开头,则模式的所有匹配都将替换为字符串。通常只有 第一场比赛被替换。如果模式以‘#’
开头,则它必须匹配 参数扩展值的开头。如果模式开始 与‘%’
,它必须在参数的扩展值的末尾匹配。 如果字符串为空,模式的匹配被删除,并且/以下的 模式可能被省略。如果参数是‘@’
或‘*’
,则会依次将替换 操作应用于每个位置参数,并且 扩展是结果列表。如果参数是以‘@’
或‘*’
作为下标的数组变量 ,则替换操作将依次应用于该数组的每个成员 ,并且该扩展是由此产生的 列表。
它doesn't look like POSIX supports it。
在你的情况,如果它PWD
ENVVAR它开始取代$HOME
ENVVAR(不是字符串字面'$HOME'
)与~
输出的值。
相关问题
- 1. 如何使用Ruby进行shell脚本?
- 2. 使用.html和.php对页眉和页脚进行说明
- 3. Google Apps脚本日历说明 - 换行
- 4. 脚本运行手册说明
- 5. 使用shell脚本计算进程数
- 6. JS - 素数脚本 - 说明
- 7. ruby脚本说明请
- 8. 使用shell脚本进行文本过滤
- 9. 在Windows上运行shell脚本 - 使用DAMP进行Drupal安装
- 10. 使用shell脚本
- 11. 使用shell脚本
- 12. 使用shell脚本
- 13. 使用shell脚本
- 14. 使用shell脚本
- 15. 使用shell脚本
- 16. 使用shell脚本
- 17. 使用shell脚本
- 18. 使用shell脚本
- 19. 使用shell脚本
- 20. 使用shell脚本
- 21. 使用Shell脚本菜单用Perl对文件进行排序
- 22. Howto:使用syslog进行用户创建的shell脚本
- 23. 从Python子进程执行shell脚本
- 24. 如何在shell脚本中说$ {foo} 123?
- 25. 使用PHP运行Shell脚本
- 26. 如何使用java执行shell脚本
- 27. 使用python远程执行shell脚本
- 28. 无法运行shell脚本使用dockerfile
- 29. 使用shell脚本删除换行符
- 30. 如何使用Spotlight运行shell脚本?
您可以使用POSIX支持的'$ {PWD#$ HOME}'。它不会带你一路,但可以构建类似的东西,也许有一个临时变量。 – tripleee
精美地解释@ J.F。塞巴斯蒂安。谢谢大家:) – mdsingh
对于那些想阅读bash参数扩展的人来说,这里是一个很好的链接http://www.linuxjournal.com/content/bash-parameter-expansion – mdsingh