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

Bash脚本for循环内嵌if语句报‘command not found’错误求助

Bash脚本if语句报错“command not found”的解决方法

你的问题根源是条件表达式的语法错误:[[和变量$counter之间、35和]]之间没有留空格。在Bash中,[[是一个特殊的关键字/命令,必须和后续的表达式分开;]]同理也需要和前面的内容保持空格分隔。如果不留空格,Shell会把[[$counter当成一个完整的命令去查找,自然会报“command not found”。

修正后的代码如下:

#!/bin/bash
var="nef892na9s1p9asn2aJs71nIsm"

for counter in {1..40}
do
        var=$(printf "%s" "$var" | base64)  # 用printf替代echo避免可能的换行问题
        if [[ $counter -eq 35 ]]; then
                echo "$var"
        fi
done

另外补充两个实用优化点:

  • 用printf "%s" "$var"替代echo $var,避免当var中包含特殊字符(比如换行、反斜杠)时出现意外行为
  • 给变量引用加上双引号("$var"、"$counter"),防止Shell对变量内容进行分词或路径扩展,这是Bash脚本的通用最佳实践

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:22:04