我正在尝试在一个bash脚本中执行三个任务。
我所做的编码是:
#!/bin/bash
(cd TRAJ_OctylGlcTryp_C1/
&&
cpptraj zOctylgluTryC1.prmtop << EOF
trajin reImaged-OctylgluTryC1.nc 1 70000 500
trajout reImaged-OctylgluTryC1-500.nc netcdf
EOF
&&
cd ../)
这意味着,首先进入目录TRAJ_OctylGlcTryp_C1并选择几帧模拟数据,最后退出文件夹。
但是我得到这样的错误
./run_Select500Frames.sh: line 4: syntax error near unexpected token `&&'
./run_Select500Frames.sh: line 4: `&& '
有没有办法摆脱这个错误? 感谢。
答案 0 :(得分:2)
你可以这样简单地写出来:
#!/bin/bash
set -eu
pushd TRAJ_OctylGlcTryp_C1/ > /dev/null
cpptraj zOctylgluTryC1.prmtop << EOF
trajin reImaged-OctylgluTryC1.nc 1 70000 500
trajout reImaged-OctylgluTryC1-500.nc netcdf
EOF
popd > /dev/null
我建议总是使用新的Bash脚本顶部的set -eu
。这样,如果命令失败,脚本将自行停止。从那里开始,我选择使用pushd
和popd
作为最后恢复旧工作目录的更可靠的方法,其余的很容易。完全没有&&
。