我不确定在 bash 脚本中应该使用什么类型的引号

我不确定在 bash 脚本中应该使用什么类型的引号

我正在编写一个脚本。我让它调用一个具有输入目录的程序。

如果从命令行执行该程序,它看起来像这样

/path/to/program -c /path/to/config -d "path/to/directory"

我正在使用变量作为目录路径。"${name}"我遇到的问题是程序需要双引号作为目录路径。我必须在变量中使用双引号来覆盖空格等。

find $SRC -type d -name '*' | while read name;
do
   $program -c $pgm_config -d "${name}";
done

脚本有点用。程序正在拾取目录,但它似乎也在拾取文件夹中的所有其他内容。单个文件等。我确信这要么是真的错了,要么是我遗漏了一些简单的东西。我尝试了几种不同的方法,看看我是否可以通过反复试验来解决问题。""${name}"" '"${name}"'但都没有成功

答案1

\当您想要使用被视为语法一部分的符号时,您必须使用转义字符或这个。

find $SRC -type d -name \* | while read name;
    do
        $program -c $pgm_config -d \"${name}\";
    done

请记住,这将看起来像隐藏目录,就像那些名称以 开头的目录一样.

相关内容