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

Bash脚本调用函数报错‘drive: command not found’问题排查

解决Bash脚本函数调用的错误问题

我来帮你搞定这个脚本错误!先看看你的问题细节:

你的脚本内容

#!/bin/bash
drive_space () {
    echo "drive space"
}
$(drive_space)

错误信息

$ ./system_info.sh
./system_info.sh: line 8: drive: command not found

错误原因

你这里犯了一个典型的Bash命令替换误用问题:$(drive_space)是命令替换语法,它会先执行drive_space函数,把函数的输出结果(也就是drive space)当作一条新的Shell命令去执行。Shell看到drive space时,会把第一个词drive识别成要运行的命令,而系统里根本没有这个命令,所以就抛出了找不到命令的错误。

修正方法

如果你的需求只是调用函数并输出内容,直接写函数名即可,不需要用$()包裹。修正后的脚本如下:

#!/bin/bash
drive_space () {
    echo "drive space"
}
# 直接调用函数,不需要命令替换
drive_space

额外说明

那什么时候才需要用$()呢?当你需要把函数的输出结果赋值给变量,或者作为其他命令的参数时才会用到,比如:

  • 赋值给变量:space_output=$(drive_space)
  • 作为其他命令的参数:echo "当前磁盘信息:$(drive_space)"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:37:56