0

我正在尝试交叉检查我拥有的文件名是否在我拥有的数据库列表中。如果不是,则将其删除。我遗漏了一些关键点,请帮助我学习这一点,谢谢。

这是我的代码:

#!/bin/bash
IFSTEMP=$IFS
IFS=\^



     rarFile=`find -name '*.mp4'`

       for r in $rarFile
        do
    filename=$(basename "$r")

    echo "$filename"

    myvariable=$(echo "SELECT nctid FROM $SQL_DATABASE.$SQL_TABLE WHERE nctid=$filname" | mysql -h$SQL_HOST -u$SQL_USERNAME -p$SQL_PASSWORD -N  $SQL_DATABASE)

    if(!$myvariable) {
    rm -rf $r
    }
    done


IFS="$IFSTEMP"
4

1 回答 1

0

IFS 是 shell 用来分割参数的分隔符,不建议改变它,这里显然没有理由改变它。默认为“\t\n”

看看区别:

(x='a b^c';IFS=\ $'\t\n';for s in $x;do echo $s;done)
(x='a b^c';IFS=^;for s in $x;do echo $s;done)

更多信息 :

man bash
/IFS
于 2012-07-25T07:47:17.073 回答