加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

具有空格的Bash变量

发布时间:2020-12-15 19:14:03 所属栏目:安全 来源:网络整理
导读:我正在面对Windows下的MinGW shell中的下一个问题。我在我的/ etc / profile中有下一个表达式: export GIT_SSH="/c/Program Files/TortoiseGit/bin/TortoisePlink.exe" 当我在本地存储库中使用git fetch时,这不起作用。但是如果我这样做(旧的方式),它的作
我正在面对Windows下的MinGW shell中的下一个问题。我在我的/ etc / profile中有下一个表达式:
export GIT_SSH="/c/Program Files/TortoiseGit/bin/TortoisePlink.exe"

当我在本地存储库中使用git fetch时,这不起作用。但是如果我这样做(旧的方式),它的作品:

export GIT_SSH="/c/Progra~1/TortoiseGit/bin/TortoisePlink.exe"

我的问题是:

如何使用变量中的空格使其工作?

为了测试目的,您可以模拟这样的东西(任何一个例子都是好的):

export VAR="/c/Program Files/TortoiseGit/bin/TortoisePlink.exe"
# and try to execute like this
$VAR

有没有解决方案(除了上面提到的)?

任何链接/提示都不胜感激。

谢谢,

尤利安

像这样执行:“$ VAR”。这是shell脚本中最重要的错误之一,因为字符串总是被替换,并且任何包含的空格被视为标记分隔符,而不是字符串的字符。想想将变量替换为在运行时粘贴的一种代码。

写$ VAR时真正发生的是shell尝试使用第一个参数Files / TortoiseGit / bin / TortoisePlink.exe执行二进制/ c /程序。

通过在特定输入的大型shell脚本中得到一个奇怪的语法错误,我学到了很多困难的方法。如果运行时输入包含特殊字符,我可以想到没有其他语言可以抱怨语法错误 – 但这是Shell脚本的本质,因为像bash和sh这样的命令解释器逐行解释代码。

每当你期望一个字符串包含空格,并且你不想把它当作单独的标记,把它放在双引号中。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读