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

如何在单行Shell脚本的if条件下放置两个for循环?

Shell多行if嵌套for转单行的正确写法

你之前的写法出错是因为每个for循环都需要单独用done闭合,不能多个for共用一个done。

原多行代码的结构是if块里包含两个独立的for循环,转成单行时,要保证每个for的语法完整,用分号分隔各个语句。

举个具体的例子,假设原多行代码是:

if true
then
    for i in 1 2 3; do echo "Num $i"; done
    for j in a b c; do echo "Char $j"; done
fi

对应的单行正确写法是:

if true; then for i in 1 2 3; do echo "Num $i"; done; for j in a b c; do echo "Char $j"; done; fi

核心规则总结:

  • if和then之间用分号分隔
  • 每个for循环的do、循环体、done必须完整,内部用分号分隔
  • 两个for循环之间用分号分隔
  • 最后依次用done闭合第二个for、fi闭合if块

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 19:41:59