【发布时间】:2011-07-01 14:06:24
【问题描述】:
我想在 bash 脚本中执行类似的操作。我正在使用bash 4.1.10。
# rm -rf /some/path/{folder1,folder2,folder3}
从外壳本身很好地工作(并且如预期的那样)。它会删除 3 个所需的文件夹,而其他所有文件夹保持不变。
当我将它放入脚本时,会发生一些不想要的事情。比如我的脚本:
#!/bin/bash
set -x
VAR="folder1,folder2,folder3"
rm -rf /some/path/{$VAR}
当我执行这个脚本时,文件夹没有被删除。
我认为这是由于发生了一些不需要的引用。使用#!/bin/bash -x从脚本输出:
rm -rf '/some/path/{folder1,folder2,folder3}'
由于' 标记,这当然不能成功。
如何在我的脚本中实现这个功能?
【问题讨论】:
-
您是绝对要使用 {}-expansion,还是等效的替代方法?
-
当然..我只有一个子文件夹名称列表,我想在后台的一个具体子shell中删除 - 意味着更具体:rm -rf /some/path/{folder1,folder2,folder3} &不是在每个子文件夹上运行的循环,因为这会增加文件服务器负载
标签: bash escaping brace-expansion