一个 bash 脚本中的多个任务

multiple task in one bash script

我正在尝试在一个 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和select几帧模拟数据,最后从文件夹中出来。

但是我得到这样的错误

./run_Select500Frames.sh: line 4: syntax error near unexpected token `&&'
./run_Select500Frames.sh: line 4: `&& '

有什么办法可以消除这个错误吗? 谢谢。

你可以这样写更简单:

#!/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。这样,如果命令失败,脚本将自行停止。从那里,我选择使用 pushdpopd 作为最后恢复旧工作目录的稍微更可靠的方法,剩下的就很简单了。根本没有 &&