gpt4 book ai didi

bash - 处理 find 返回的文件路径中的单引号

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

我正在编写一个 bash 脚本,当从目录 B 运行时,它会在目录 B 中镜像目录 A 的目录结构。

目前,我是这样做的:

 #!/bin/bash          

dirify () {
echo $1
}
export -f dirify

find "../test" -type d -exec bash -c "dirify '{}'" \;

我正在从目录 B 运行此脚本,而 ../test 是目录 A。幸运的是,我用来测试的目录包含名称中带有 ' 的文件夹。当我运行这个脚本时,bash 在到达这些目录时给出以下错误:

> bash: -c: line 0: unexpected EOF while looking for matching `''
> bash: -c: line 1: syntax error: unexpected end of file

(注意第 0 行和第 1 行指的是 dirify() 函数中的行)

说明此问题的更简化方法如下:

find "../test"-exec bash -c "echo '{}'"\;

这个例子产生了同样的错误。

无论如何,这是一个问题,因为在生产中,我不能假设文件路径不包含 ' 字符。

有什么办法解决这个问题吗?

最佳答案

将其作为参数传递。

bash -c 'dirify "$1"' dirify {}

关于bash - 处理 find 返回的文件路径中的单引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10459267/

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