结合使用 BASH 变量和条件 IF 的困难

结合使用 BASH 变量和条件 IF 的困难

有人可以帮助我吗?

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

你的价值$testfilegrep Have aims.out | cut -c11-14绝对不等于Have。这就是为什么你if根本不进入第二个块。
如果要执行grep语句并将其结果分配给变量,则需要用反引号替换引号:

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

相关内容