Bash 스크립트 공부하는 학생입니다.
글쓴이: gksrb500 / 작성시간: 수, 2021/12/08 - 8:29오후
안녕하세요, 업무 효율을 증가시키기 위해 bash 스크립트의 필요성을 느껴 bash 스크립트를 공부하면서 업무에 적용시키는 학생입니다.
제가 하고 작성하고 싶은 스크립트는 CONTCAR라는 파일의 9번째 줄부터 가장 마자막 줄까지 모든 line의 3번째 행을 읽어 그 값이 zz라는 값보다 크면 "0 0 -3" 을, 그렇지 않으면 "0 0 0"을 velocity라는 파일에 한줄 한줄 넣게 하고 싶습니다.
(아래 제가 작성한 것에서는 for 반복문의 i에 712는 CONTCAR 파일의 마지막 줄의 line number를 보며 직접 입력했습니다.)
제 뜻이 정확하게 잘 전달될지 잘 모르겠습니다. 이렇게 했더니 에러가 났는데
1. 어떤 이유로 에러가 났는지,
2. 그렇다면 어떻게 해야할지,
3. 그리고 코딩 전문가님들께서는 어떻게 더 깔끔하게 정리할 수 있는지 궁금합니다.
감사합니다!!!
#!/bin/bash DIRECTION=/home/recipes/Si2H6/NVT_drop2 zz=0.52 velo=-3 for i in {9..712..1} line=$(cat ${DIRECTION}/CONTCAR | sed -n ${i}p | awk '{print $3}' ) do if [ ${line} -gt ${zz} }; then echo "0 0 ${velo}" else echo "0 0 0" fi done > ${DIRECTION}/velocity
Forums:
"이렇게 했더니 에러가 났는데" --> 어떤 에러인지
"이렇게 했더니 에러가 났는데" --> 어떤 에러인지 알려주시는게 좋습니다. line=.. 줄과 do 가 순서가 잘못된 듯.
대략 아래와 같이 할듯..
댓글 달기