한 디렉터리의 일부 데이터 파일을 현재 작업 디렉터리로 복사하고 gnuplot을 사용하여 해당 파일을 작업 디렉터리의 다른 파일과 함께 플롯하는 간단한 셸 스크립트가 있습니다. 스크립트는 다음과 같습니다.
#!/bin/sh
SILVACO_DIR="/home/pbaikadi/my_silvaco/atlas/mat1-mat2-hetero/"
LATEST_DAT_FILE=$(ls -t $SILVACO_DIR|head -1)
FILE_PATH=$(readlink -f $SILVACO_DIR$LATEST_DAT_FILE)
cp -v $FILE_PATH .
FILE=$(ls -t $PWD|head -1)
echo "$FILE"
sed -i '1,4d' "$FILE"
awk '{$1=$1*1000;print $1>"temp1.dat";print $2>"temp2.dat"}' "$FILE"
paste temp1.dat temp2.dat > "$FILE"
rm temp1.dat temp2.dat
gnuplot <<EOF -persist
set key font "Helvetica,15"
set tics font "Helvetica,10"
set xlabel 'Position (in nm)' font "Helvetica,15" offset 0,0,0
set ylabel 'Conduction Band Energy in eV' font "Helvetica,15" offset 4,0,0
set title 'Conduction Band Cutline along Y and between the gates' font "Helvetica,15"
plot 'cond_cutline_y_between_gates.txt' w linespoints title "With PETSc"
#replot "$FILE" w linespoints title "With Silvaco"
EOF
rm $FILE
내가 직면한 문제는 EOF 구분 기호 앞의 모든 명령의 첫 번째 문자가 제거된다는 것입니다. #을 명령의 첫 번째 문자로 넣어 이 문제를 해결하려고 시도했지만 제대로 작동했지만 원래 코드에서 저지른 실수를 이해하고 싶습니다. 어떤 도움이라도 대단히 감사하겠습니다.