![조건부 IF에서 BASH 변수를 사용하는 데 어려움이 있음](https://linux55.com/image/83092/%EC%A1%B0%EA%B1%B4%EB%B6%80%20IF%EC%97%90%EC%84%9C%20BASH%20%EB%B3%80%EC%88%98%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%8D%B0%20%EC%96%B4%EB%A0%A4%EC%9B%80%EC%9D%B4%20%EC%9E%88%EC%9D%8C.png)
누구든지 나를 도와줄 수 있나요?
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`