![我不确定在 bash 脚本中应该使用什么类型的引号](https://linux22.com/image/1408865/%E6%88%91%E4%B8%8D%E7%A1%AE%E5%AE%9A%E5%9C%A8%20bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E5%BA%94%E8%AF%A5%E4%BD%BF%E7%94%A8%E4%BB%80%E4%B9%88%E7%B1%BB%E5%9E%8B%E7%9A%84%E5%BC%95%E5%8F%B7.png)
我正在编写一个脚本。我让它调用一个具有输入目录的程序。
如果从命令行执行该程序,它看起来像这样
/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
请记住,这将看起来像隐藏目录,就像那些名称以 开头的目录一样.
。