쉘 스크립트 작성 중 이해가 동작을 안하는 부분이 있어서 질문을 올립니다.
글쓴이: 익명 사용자 / 작성시간: 월, 2021/05/24 - 4:27오후
쉘 스크립트 작성 중 이해가 동작을 안하는 부분이 있어서 질문을 올립니다.
i=1 for w in $(ls -l ~/some |grep "^d"|awk '{print $9}') do me_ref_$i=$(ls -l ~/some/$w/Ref | grep "^d" | awk '{print $9}') me_var_$i=$w
문제가 되는 코드는 이 부분입니다. 이것의 결과는
./trainset_make: line 61: me_ref_1=clock: command not found ./trainset_make: line 62: me_var_1=min: command not found
이런 오류가 나와서 구글에서 찾아봐
me_ref_$i=`ls -l ~/some/$w/Ref | grep "^d" | awk '{print $9}'`
backtick을 이용해서 명령어 저장 또한 해봐도 동일한 오류가 나옵니다.
원인이 뭔가요?
Forums:
아 me_ref_1을 clock, me_var_1을
아 me_ref_1을 clock, me_var_1을 min이란 이름으로 변수 지정하려 하는 것은 맞습니다. 하지만 오류가 나온 상황입니다.
며칠전에 올라온 https://kldp.org
며칠전에 올라온 https://kldp.org/node/164544 글에 같은 맥락(변수명이 런타임에 동적으로 결정됨)의 질문/답변이 있으니 참고하시고요.
아래와 같이 eval 넣으면 될겁니다.
변수값 사용할 때는 eval과 \$. 테스트해보고 목적에 맞게 만져서 쓰시면 되겠습니다.
댓글 달기