我正在尝试迭代地将代码文件/文件夹从一个目录移动到另一个目录,作为持续集成的一部分,为此,我使用下面的代码块。
for i in $HOME/gitstage/frolit/* ; do
if [ echo "$i" | grep -v '*db.sqlite3*|*bitbucket-pipelines.yml*' ]; then
echo "$i"
fi
done
这里我试图限制两个文件db.sqlite3和bitbucket-pipelines.yml进入目标目录。但不知何故,这还没有成功。有人可以帮忙吗?
答案 0 :(得分:1)
使用bash 3.0或更新版本:
if [[ ! "$i" =~ .*(db.sqlite3|bitbucket-pipelines.yml).* ]]; then
答案 1 :(得分:0)
for i in $HOME/gitstage/frolit/* ;
do
if [[ "${i}" = *"db.sqlite3"* ]] || [[ "${i}" = *"bitbucket-pipelines.yml"* ]];
then
continue
fi
mv $i /target/directory ####target directory where you want to move the files to
done
即使在旧版本中,这应该在bash和ksh中都能正常工作。只需确保检查shell的语法是否相应,并在相应的情况下修改上述内容。