조건부 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절대 grep Have aims.out | cut -c11-14와 같지 않습니다 Have. 그렇기 때문에 if두 번째 블록에는 전혀 들어가지 않습니다. 명령문을
실행하고 그 결과를 변수에 할당하려면 grep따옴표를 역따옴표로 바꿔야 합니다.

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

관련 정보