命令的第一个字符被 shell 自动删除

命令的第一个字符被 shell 自动删除

我有一个简单的 shell 脚本,用于将某些数据文件从一个目录复制到当前工作目录中,并使用 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 分隔符之前的任何命令的第一个字符都被删除。我尝试通过将 # 作为命令的第一个字符来解决此问题,并且它有效,但我想了解我在原始代码中犯下的错误。如有任何帮助,我们将不胜感激。

相关内容