gpt4 book ai didi

bash - 我怎样才能告诉 bash 正确转义扩展字符串?

转载 作者:行者123 更新时间:2023-11-29 09:11:38 24 4
gpt4 key购买 nike

假设我有一个包含文件的目录

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。外壳可以为你做到这一点。 (假设您使用的是 bash)

for file in *.txt
do
mv "$file" "${file%.txt}"
done

关于bash - 我怎样才能告诉 bash 正确转义扩展字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com