if [ -f "$N_file" ] && [ -f "$Nplus1_file" ] && [ -f "$Nminus1_file" ] ; then
Multiwfn "$N_file" << EOF > result.txt
22
2
$N_file
$Nplus1_file
$Nminus1_file
3
$N_file
$Nplus1_file
$Nminus1_file
3
5
6
7
8
EOF
else
echo "input molden file does not exist for $N_file."
fi
done
但是它显示在result.txt文件里的是:
Unable to find N.wfn in current folder. Please input path of .wfn/wfx/fch/mwfn file of N electrons state, e.g. /sob/N.fch (Note that molden file should not be used, as it does not record system energy)
Unable to find N+1.wfn in current folder. Please input path of .wfn/wfx/fch/mwfn file of N+1 electrons state, e.g. /sob/N+1.fch
Error: Unable to find this file!
我看不出这里代码有啥问题,因为我之前写过一个计算NTO的脚本也是提取文件名,然后代码也类似如下:
for file in *.molden; do
filename="${file%.molden}"
output_file="${filename}_NTO.molden"
log_file="${filename}.log"
if [ -f "$log_file" ]; then
Multiwfn "$file" << EOF > result.txt
18
6
$log_file
3
1
1
$output_file
EOF
else
echo "Log file $log_file does not exist."
fi
done