You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash脚本中分行编写命令并通过条件控制选项启用

Bash脚本中灵活管理packmol-memgen命令选项的方法

直接用数组来管理命令选项是最实用的方式,既能让每个选项单独分行,还能轻松通过变量控制是否启用特定选项。下面是改写后的代码:

# 初始化存储选项的数组
packmol_opts=(
    --pdb "$output"/${pdb_name}_${lipid}_${distxy}A/${pdb_name}.pdb
    --lipids "$lipid"
    --salt
    --salt_c Na+
    --ffprot ff14SB
    --fflip lipid21
    --ffwat tip3p
    --keepligs
    --preoriented
    --distxy_fix "$distxy"
    --ratio 1
    --dist_wat "$dist_wat"
    --parametrize
)

# 根据$min变量决定是否添加--minimize选项
if [[ "$min" == true ]]; then
    packmol_opts+=(--minimize)
fi

# 执行packmol-memgen命令,正确展开数组选项
packmol-memgen "${packmol_opts[@]}"

关键说明:

  • 每个选项单独成行,想临时禁用某个选项时,直接在行首加#注释即可,比如:
    # --salt
    # --salt_c Na+
    
  • 用if判断控制--minimize:只要$min变量值为true(或你定义的其他布尔标识,比如1),就会自动把该选项加入数组
  • 所有变量用双引号包裹,避免空格、特殊字符导致的解析错误
  • 执行命令时用"${packmol_opts[@]}"展开数组,能保证每个选项被正确识别,不会因为空格拆分出错

如果需要控制其他选项,直接复制if判断的逻辑即可,比如想控制--salt是否启用,再加一段类似的条件判断就行。

内容的提问来源于stack exchange,提问作者James Starlight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 23:53:12