3

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

目前,我这样做如下:

 #!/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 '{}'" \;

此示例产生相同的错误。

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

反正有这个问题吗?

4

1 回答 1

2

将其作为参数传递。

bash -c 'dirify "$1"' dirify {}
于 2012-05-05T06:09:28.950 回答