【发布时间】:2011-12-16 21:36:57
【问题描述】:
这是一个 bash 安装脚本。脚本 foo.sh 将“DIRECTORY”作为参数。比如说,有一个目录<$HOME>/TEST/TEST_1A/TEST_2A/TEST_3 和另一个目录<$HOME>/TEST/TEST_1B/TEST_2B/TEST_3。
脚本:foo.sh 简介。
DIR='find $HOME -type d -name $1 | head 1'
if [ DIR is set to a directory ]
then
rm -rf $DIR
fi
exit 0
用法:foo.sh TEST_3
现在从脚本中,只能删除 <$HOME>/TEST/TEST_1A/TEST_2A/TEST_3。要删除 <$HOME>/TEST/TEST_1B/TEST_2B/TEST_3,我需要在我的 find 命令中使用 reg exp 来微调删除以解决目录冲突。
将上述脚本的查找部分修改如下
DIR='find $HOME -type d -regexp $1 | head 1'
新用法:foo.sh TEST_2B/TEST_3
但是“查找”命令无法将 DIR 设置为 <$HOME>/TEST/TEST_1B/TEST_2B/TEST_3 而是返回空 & 结果 DIR 是空的,我永远无法删除 <$HOME>/TEST/TEST_1B/TEST_2B/TEST_3
如何更改脚本,以便 find 可以仅对目录名称以及目录路径进行操作,而不会出现任何问题。事实上,一些用户可能会将部分目录路径作为“foo.sh”的参数。我希望“foo.sh”能够工作,即使在这种情况下
【问题讨论】:
-
请发布 bash 脚本的源代码。我写了很多相当基本的脚本,尽管很长。没有什么比回应你的论点更有帮助了。