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

Bash脚本调用含空格路径的mega-ls报错原生执行正常如何解决

根因分析

Bash对不同场景下的转义符、引号处理逻辑存在差异:

  • 直接在终端输入 mega-ls ahmedrafat@debugz-it.com:EVE-NG\ Repos 时,未被引号包裹的反斜杠\会被Bash直接解析为空格的转义标记,最终传给mega-ls的路径是正确的EVE-NG Repos,所以能正常执行。
  • 脚本中你用双引号包裹变量值 mainDir="EVE-NG\ Repos" 时,双引号会把反斜杠识别为字面量字符存储,变量实际存储的内容是带反斜杠的EVE-NG\ Repos,展开后传给mega-ls的路径多了额外的反斜杠,自然匹配不到目标路径。

修复方案

最简洁且不易出错的修复方式是:变量赋值时取消多余的转义反斜杠,执行命令时给拼接后的路径整体加双引号避免空格分词:

#!/bin/bash

mainDir="EVE-NG Repos"
mega-ls "ahmedrafat@debugz-it.com:$mainDir"

双引号会保留路径中的空格为普通字符,不会被Bash拆分为两个独立参数,传入mega-ls的路径和你手动执行时完全一致。


内容的提问来源于stack exchange,提问作者Ahmed Ra'fat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:27:03