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

Bash脚本报错求助:0=1: command not found等问题排查

拆解你的两个报错

1. 第9行:0=1: command not found

这个错误是条件判断的典型语法错误。Bash里的条件判断必须用[ ... ]或者[[ ... ]]包裹,不然shell会把你的条件表达式当成一个命令去执行——比如你写了if 0=1,shell就会去找名为0=1的命令,自然找不到。

另外还要注意两个细节:

  • 整数比较要用-eq(等于)、-ne(不等于)这类运算符,别直接用=(那是字符串比较的写法)
  • [的后面和]的前面必须留空格,比如[ $? -eq 0 ]才对,[$?-eq0]会直接报错

举个错误vs正确的对比示例:

# ❌ 错误写法:没有用[]包裹条件,shell把0=1当命令
if 0=1; then
    echo "Oops"
fi

# ✅ 正确写法:用[]包裹,整数比较用-eq
if [ $? -eq 0 ]; then
    echo "命令执行成功"
fi

# 更推荐的写法:直接判断命令的执行结果(无需依赖$?)
if ls "$HOME"; then
    echo "主目录存在"
fi

2. 第17行:Home * Error: command not found

这个问题大概率是字符串输出时没加引号导致的。Bash里的*是通配符,如果你直接写echo Home * Error:,shell会把*展开成当前目录下的所有文件,然后把这些展开后的内容当成命令去执行,自然会报“command not found”。

另外也可能是你写错了变量名——Bash变量区分大小写,$Home是未定义的空变量,而正确的主目录变量是$HOME。

错误vs正确示例:

# ❌ 错误写法:没加引号,*被展开,变量引用也不规范
echo Home $Home * Error: 目录检查失败

# ✅ 正确写法:用双引号包裹整个字符串,避免通配符展开
echo "Home $HOME Error: 目录检查失败"

# 或者更严谨的变量引用方式
echo "Home ${HOME} Error: 目录检查失败"

给你的目录检查脚本优化方案

既然你要检查目录存在性和权限,推荐用更简洁可靠的写法,避免踩语法坑:

#!/bin/bash

# 定义要检查的目录列表,后续加目录直接往数组里加就行
check_dirs=("$HOME" "/var/log" "/tmp")

for dir in "${check_dirs[@]}"; do
    # 检查目录是否存在
    if [ ! -d "$dir" ]; then
        echo "❌ 错误:目录 $dir 不存在"
        continue
    fi

    # 检查读权限
    if [ ! -r "$dir" ]; then
        echo "❌ 错误:目录 $dir 无读权限"
    fi

    # 检查写权限
    if [ ! -w "$dir" ]; then
        echo "❌ 错误:目录 $dir 无写权限"
    fi

    # 检查执行权限(进入目录需要这个权限)
    if [ ! -x "$dir" ]; then
        echo "❌ 错误:目录 $dir 无执行权限"
    fi

    echo "✅ 目录 $dir 检查完成"
done

这个脚本的优势:

  • 用数组管理要检查的目录,后续维护更方便
  • 直接用Bash内置的文件测试运算符(-d/-r/-w/-x),比依赖ls的返回值更可靠
  • 所有变量都用双引号包裹,避免空格、特殊字符导致的语法问题

排查小技巧

如果还是找不到问题,可以试试这两个方法:

  1. 在脚本第一行#!/bin/bash下面加set -x,这样脚本执行时会打印每一行的执行细节,你能清楚看到哪一步出了问题
  2. 逐行检查变量赋值和条件判断:
    • 变量赋值时=两边绝对不能有空格(比如dir="$HOME"是对的,dir = "$HOME"是错的)
    • 条件判断的[和]前后必须留空格
    • 字符串或变量引用尽量用双引号包裹,避免特殊字符被shell解析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:37:52