gpt4 book ai didi

Bash vs. Zsh,git grep 在 bash for 循环中工作而不在 zsh for 循环中工作?

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

以下内容在 bash 中有效,但在 zsh 中无效,我不确定原因:

user@machine:~/some_git_repo$ for i in $(ls ./conf); do git --no-pager grep $i ; done

对于 ./conf 中的每个文件,zsh shell 会产生以下结果

fatal: command line, 'some_file_name.xml': Unmatched [ or [^

最佳答案

你根本不应该在这里使用命令替换。相反,请使用 glob——并查看 Why you shouldn't parse the output of ls(1) .

# this works reliably in both bash and zsh
for i in ./conf/*; do git --no-pager grep -F -e "${i##*/}"; done

请注意 grep -F 的使用——这意味着您的参数被视为文字字符串,而不是正则表达式,因此您不能使用无效正则表达式语法的文件名。

关于Bash vs. Zsh,git grep 在 bash for 循环中工作而不在 zsh for 循环中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39417308/

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