加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何告诉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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读