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

Shell脚本变量赋值时报Is a directory与command not found错误

错误原因
  • Shell 变量赋值语法要求等号两侧不能存在空格,你写的forkname = 会被 Shell 解析为执行名为forkname的命令,等号和后续内容被识别为命令参数,因此触发forkname: command not found报错。
  • 命令替换部分的逻辑错误:你直接写$dir | sed -e ...会让 Shell 尝试执行$dir对应的路径(也就是chia-blockchain/目录),目录无法被直接作为命令执行,因此触发chia-blockchain/: Is a directory报错。
修复方法

你需要同时修正赋值语法和命令替换的逻辑,建议优先用$()替代反引号实现命令替换,可读性更高且支持嵌套操作,修正后的代码如下:

# 推荐写法:变量加双引号避免路径含空格时拆分,sed 模式用单引号避免特殊字符被提前解析
forkname=$(echo "$dir" | sed -e 's,-blockchain/,,')

# 如果你坚持用反引号的写法,修正后如下
forkname=`echo "$dir" | sed -e 's,-blockchain/,,`

执行上述代码后forkname就能正常拿到chia的赋值结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:15:04