如何告诉bash正确地转义扩展字符串?
发布时间:2020-12-15 21:27:42 所属栏目:安全 来源:网络整理
导读:假设我有一个包含这些文件的目录 foo bar.txt foo baz.txt (每个都有’o’和’b’之间的空格).假设我想这样做: for f in *.txt; do mv ${f} `basename ${f} .txt`; done 这会失败,因为bash将* .txt扩展为 foo bar.txt foo baz.txt 代替 foo bar.txt foo b
假设我有一个包含这些文件的目录
foo bar.txt foo baz.txt (每个都有’o’和’b’之间的空格).假设我想这样做: for f in *.txt; do mv ${f} `basename ${f} .txt`; done 这会失败,因为bash将* .txt扩展为 foo bar.txt foo baz.txt 代替 foo bar.txt foo baz.txt 即正确逃脱,就像我使用了标签完成一样. 我怎样才能让bash正确地逃脱其输出? 解决方法
你把引号放在变量中.这样你就可以保留空间.此外,不需要使用外部命令basename. shell可以为你做到这一点. (假设你正在使用bash)
for file in *.txt do mv "$file" "${file%.txt}" done (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Angular系列——MVC模式和MVVC模式
- AngularJs 基础教程 (一) 我的第一个angularjs程序
- 无法将Vim的可视模式中的文本附加到另一个文件
- SoapUI学习(1)- WebService基础
- AngularJS $location.path(‘/’)不清除search()参数
- vim & Python ide
- 当使用docker/fig运行Django dev服务器时,为什么隐藏了一些
- shell脚本实现本地文件与服务器文件同步
- 在Scala中实现ifTrue,ifFalse,ifSome,ifNone等,以避免if(…
- angularjs – 在所有$http异步调用完成后加载路径模板/控制