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 は、シェルが引数を分割するために使用する区切り文字です。これを変更することはお勧めしません。変更する理由はないようです。デフォルトは「\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 に答える