条件付きIFでBASH変数を使用するのが難しい

条件付きIFでBASH変数を使用するのが難しい

誰でも私を助けることができますか?

for k in {1..10001}
do
if [ -d "$k" ]
    then
        cd $k/
        testfile="grep Have aims.out | cut -c11-14"
        cd ..
fi
if [[ "$testfile" == "Have" ]]  
    then
        mv $k $k_OK
fi
done

ディレクトリ名を変更する必要がある部分は機能しません。 testfile変数を誤って使用しているようです。

答え1

あなたの値は決して同じではありませ$testfileん。そのため、2番目のブロックにはまったく入りません。文を 実行して結果を変数に代入するには、引用符を逆引用符で置き換える必要があります。 grep Have aims.out | cut -c11-14Haveif
grep

testfile=`grep Have aims.out | cut -c11-14`

関連情報