如何在单行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
相关产品推荐
相关产品推荐

