什么’cd ${0%/ *}’在bash中意味着什么?
发布时间:2020-12-16 01:16:34 所属栏目:安全 来源:网络整理
导读:我遇到了一个 git commit,用这个魔术变量替换cd ${0%/ *}来清理一些readlink和dirname命令. bash如何解释它? 这里的%称为模式匹配运算符. 学习Bash Shell书中的一句话: 模式匹配运算符的经典用法是剥离路径名的组件,例如目录前缀和文件名后缀.考虑到这一
我遇到了一个
git commit,用这个魔术变量替换cd ${0%/ *}来清理一些readlink和dirname命令.
bash如何解释它?
这里的%称为模式匹配运算符.
学习Bash Shell书中的一句话: 模式匹配运算符的经典用法是剥离路径名的组件,例如目录前缀和文件名后缀.考虑到这一点,这是一个显示所有运算符如何工作的示例.假设变量路径的值为/home/cam/book/long.file.name;然后: Expression Result Comments ${path##/*/} long.file.name ## takes out longest matched substring from the front ${path#/*/} cam/book/long.file.name # takes out shortest matched substring from the front $path /home/cam/book/long.file.name ${path%.*} /home/cam/book/long.file % takes out shortest matched substring from the rear ${path%%.*} /home/cam/book/long %% takes out longest matched substring from the rear 这些可能很难记住,所以这里有一个方便的助记符设备: >匹配前面因为数字符号在数字之前; 在您的特定情况下,0是我的示例中路径的对应部分,因此您应该知道它. 如果$0是/home/chj/myfile.txt,cd ${0%/ *}将扩展为cd / home / chj,即剥离“文件”部分. 我理解你提出这个问题的冲动,因为如果没有几个小时深入挖掘一本Bash书,就很难找到答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- AngularJS app.run()文档?
- 1.7、Bootstrap V4自学之路------起步---最佳实践
- WCF的用户名密码认证
- bash – 脚本中rsync的用户名和密码
- scala – 以编程方式提交作业时Spark EC2群集上的java.io.E
- 云计算 – Cloudify:bootstrap-localcloud:操作失败了?
- VIM安装NERDTree插件显示工程目录
- R EnvironmentError:在路径上找不到Ghostscript. RWebLogo
- shell – 查找,grep和执行 – 全部在一起?
- angularjs – Angular JS – 表单上的取消按钮禁止提交表单