带空格的 Bash 变量

2023-12-01

我在 Windows 下的 MinGW shell 中面临下一个问题。我在我的/etc/profile表达方式:

export GIT_SSH="/c/Program Files/TortoiseGit/bin/TortoisePlink.exe"

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

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 尝试执行二进制文件/c/Program有第一个参数Files/TortoiseGit/bin/TortoisePlink.exe.

我通过在特定输入的大型 shell 脚本中遇到奇怪的语法错误而艰难地学到了这一点。如果运行时输入包含特殊字符,我能想到的其他语言都不会抱怨语法错误 - 但这就是 shell 脚本的本质,因为像 bash 和 sh 这样的命令解释器会逐行解释代码。

每当您希望字符串包含空格并且不想将其视为单独的标记时,请将其用双引号引起来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带空格的 Bash 变量 的相关文章

  • T-SQL 表名别名

    在我的 T SQL 脚本中 我多次引用相同的长表名称 我在不同的表上使用这个查询 有没有办法通过变量引用表名 如果是这样 我可以简单地在脚本将使用的顶部声明一个变量 只需设置值 我就可以在各种表上运行它 而无需在脚本中进行更改 有几个选择
  • 如何获取 bash 中从 Ping 接收到的数据包的百分比?

    当 ping 主机时 我希望输出仅显示收到的数据包 已发送 5 个 的百分比 我想我需要使用grep不知怎的 但我不知道如何 我是 bash 编程的新手 这是我所在的地方 ping c 5 q host grep grep 中应该包含什么
  • 编写一个 shell 脚本,find-greps 并在 1 行中输出文件名和内容

    要查看所有包含 abc 的 php 文件 我可以使用这个简单的脚本 find name php exec grep l abc 我可以省略 l 并且提取部分内容而不是文件名作为结果 find name php exec grep abc 我
  • 编写 shell 脚本以 am 或 pm 表示法显示时间

    我正在尝试编写一个 shell 脚本 以上午或下午的形式显示时间 而不是使用 date 命令显示时间 我不知道我应该如何去做这件事 我想对于初学者来说 如何从日期命令中提取时间来操作它 我如何提取小时数来操纵它 您正在寻找的是 man st
  • 从 PHP 访问 JavaScript 变量

    我需要访问一个JavaScript变量与PHP 这是我当前正在尝试的代码的精简版本 该版本不起作用 我对 JavaScript 和 PHP 都是新手 所以我非常感谢任何建议 UPDATE 好吧 我想我过于简化了 我想做的是创建一个表单 提交
  • bash 递归xtrace

    有没有办法运行 bash 脚本 X 以便如果 X 调用可执行 bash 脚本 Y 则 Y 以 sh eux 开头 X sh Y sh Y sh bin sh echo OK 可以通过导出子 shell 使用父 shell 中设置的相同 sh
  • 使用 awk 将特定子字符串与正则表达式匹配

    我正在处理特定的文件名 并且需要从中提取信息 文件名的结构类似于 20100613 M4 28007834 005 F RANDOMSTR raw gz RANDOMSTR 是最多 22 个字符的字符串 并且可能包含 或不包含 格式为 W
  • 使用 BASH 和 AWK 创建 HTML 表

    我在创建 html 表来显示文本文件中的统计信息时遇到问题 我确信有 100 种方法可以做得更好 但这里是 以下脚本中的注释显示了输出 bin bash function getapistats curl s http api exampl
  • '>&0' 有用途吗(重定向到标准输入)?

    在 bash 中你可以这样做 echo test gt 1 重定向到标准输出 尽管它已经到那里了 echo test gt 2 重定向到标准错误 echo test gt 0 重定向到标准输入 当我做最后一个时 我的终端仍然打印test就像
  • 如何从正则表达式中获取所有匹配项?

    我想获得所有出现的情况 0 9A Z 以供稍后处理 我有 if cat file 0 9A Z then echo BASH REMATCH fi 这给了我第一个匹配项 但是我如何处理文件中的所有匹配项 谢谢 如果您只想获取正则表达式的匹配
  • 在 shell 脚本中将脚本目录更改为用户的 homedir

    在我的 bash 脚本中 我需要将当前目录更改为用户的主目录 如果我想更改为用户的foo主目录 从命令行我可以执行以下操作 cd foo 效果很好 但是当我从script它告诉我 bar sh line 4 cd foo No such f
  • 在 bash 中将 nameref 设为常规变量

    EDIT 这已被确认为一个错误并将被修复 https lists gnu org archive html bug bash 2018 03 msg00055 html https lists gnu org archive html bu
  • Bash:替换管道标准输入中的子字符串

    我尝试用新的子字符串替换标准输入中的某个子字符串 在读取几个文件后 我必须从管道获取标准输入cat 然后我想将更改后的字符串向前推到管道中 这是我尝试做的 cat file1 file2 echo cat path to file path
  • 如何将Python包从旧版本安装到新版本?

    我正在使用 python 3 7 最近在 Linux 中安装了 python 3 8 是否有任何 bash 命令或脚本可以获取 3 7 的所有软件包列表并在 3 8 版本中一一安装 我想避免每个包裹都手工完成 注意 我将它们安装在我的系统中
  • 挖泥机子集 (MuMIn) - 如果存在主效应,则必须包括交互作用

    我正在使用 dredge MuMIn 进行一些探索性工作 在此过程中 我想将两个变量设置为仅当它们之间存在相互作用时才允许一起出现 即它们不能仅作为主要效果一起出现 使用样本数据 我想挖掘模型 fm1 尽管它可能没有意义 如果变量 GNP
  • 使用数组参数创建 bash 选择菜单

    我有一个函数叫做createmenu 该函数将接受一个数组作为第一个参数 第二个参数是数组的大小 然后我想使用该数组的元素创建一个选择菜单 这是我到目前为止所拥有的 使用给定数组创建菜单 createmenu echo 1 echo Siz
  • 变量“@{credentials}[0]”的值不是列表或类似列表

    我是一个新的机器人框架用户 当我尝试使用列表变量时 出现以下错误 真的不知道我哪里错了吗 Value of variable credentials 0 is not list or list like credentials Admin
  • R中不重复的组合

    我试图获取变量元素长度为 3 的所有可能组合 虽然它部分地与combn 一起工作 但我没有完全得到我正在寻找的输出 这是我的例子 x lt c a b c d e t combn c x x 3 我得到的输出看起来像这样 1 2 3 1 a
  • 升级后 pip 损坏

    我做了 pip install U easyinstall 然后 pip install U pip 来升级我的 pip 但是 当我尝试使用 pip 时 我现在收到此错误 root d8fb98fc3a66 which pip usr lo
  • 在 Bash 中使用“$RANDOM”生成随机字符串

    我正在尝试使用 Bash 变量 RANDOM创建一个由包含整数和字母数字的变量中的 8 个字符组成的随机字符串 例如 var abcd1234ABCD 我怎样才能做到这一点 使用参数扩展 chars 是可能的字符数 是模运算符 chars

随机推荐

  • android 谷歌地图弹出按钮

    好的 到目前为止 我拥有的是一个带有 Google 地图的 Android 应用程序 我在其中放置了一堆图标 当单击这些图标时 会创建一个带有一些文本的弹出窗口 有什么办法可以在弹出窗口上放置一个按钮吗 如果这是不可能的 是否有某种方法可以
  • 从 GMail 的“已发送邮件”文件夹中获取电子邮件标头

    我的程序通过 GMail 向联系人发送电子邮件 通常情况下 这种方法效果很好 但我们注意到 有时我的程序 认为 它已发送的电子邮件实际上并未到达 Gmail 更不用说到达联系人了 我想我也许可以在程序中添加一个检查 访问 Gmail 已发送
  • HTML5 的输入模式属性忽略大小写

    我需要让 HTML 输入元素模式忽略值的大小写 就像如果正则表达式是 a z 我可以让它匹配所有大写字母吗 我知道我可以这样做 a zA Z 但那只是一个例子 我认为这是不可能的 规范上
  • 每次发出信号时都会多次调用插槽

    我在一个块中使用一个信号和槽连接 我的代码如下 in a cpp QObject connect m ptheFlange2Details SIGNAL GetFlang1DimAfterAnalysis this SLOT GetFlan
  • 我可以根据 firebase firestore 中对象的长度对结果进行排序吗?

    我的 firestore 文档中有一个投票字段 其中存储了对该文档进行投票的人员的 uid 我想调用所有文件并按照投票对象中的票数排序 I tried db collection myCollection orderBy Object ke
  • 合并两个不同维度的数组 PHP

    我有两个不同的维度数组 Array 1 Array1 0 gt Array id gt 123 price gt 5 purchase time gt 2014 4 10 1 gt Array id gt 123 price gt 5 pu
  • 尝试使用 javascript、jquery 和 html 搜索 wunderground 位置

    下面的代码不起作用 尝试搜索天气位置 当我搜索时什么也没有发生
  • Excel-VBA - 在数据字段数组中插入新的第一列,无需循环或 API 调用

    Intro 去年 PrzemyslawRemin 提出了这个问题如何在VBA中向现有矩阵添加计数器列 无需额外的循环 and 无需修改工作表 本示例中的原始矩阵是一个 基于 1 的 2 维 数据字段数组 源单元格仅包含其地址字符串 插入的行
  • 带回“覆盖”窗口方法[重复]

    这个问题在这里已经有答案了 如果我将 window alert 重置为其他功能 有什么方法可以恢复它而无需先 保存 它 例如 window alert function 这样做之后 有没有办法将 window alert 恢复到原来的状态
  • 将静态库转换为共享库?

    我有一个第三方库 主要由大量静态 a 库文件 我可以将其编译成一个 a库文件 但我真的需要它是一个单一的 so共享库文件 有什么方法可以将静态转换为 a文件到共享 so文件 或者更一般地说 是否有一个好的方法来组合大量的静态 a文件有几个
  • 在 Django 框架中发出 ajax Post 请求时出现 403 Forbidden 错误

    我正在尝试将 jquery 集成到我使用 Django 框架制作的 Web 应用程序中 然而我很难尝试做一个简单的ajax打电话去上班 我的模板文件包含用于处理 ajax 调用的 html 和 javascript 表单 如下所示
  • iPhone:在应用程序中同时使用 OpenGL 和本机用户界面的最佳方式是什么?

    我对 iPhone 平台还很陌生 所以我想知道在 OpenGL 渲染和 UIView 之间切换的最佳方式是什么 任何评论都非常感谢 根本不需要切换模式 iPhone 上的 OpenGL ES 渲染是在 CAEAGLLayer 核心动画层中完
  • 如何将一张表与许多不同的表关联起来?

    我有一个表格列表 即学生 教师 员工 部门 等等 每个表都有特定的注释 现在 表中的一条记录可以有一个或多个注释 这表明从任何表到注释表都是一对多关系 我不知道将评论表与其中每一个相关联的最佳方法是什么 如果我将评论表中的外键放入每个表中
  • 如何绘制堆积事件持续时间(甘特图)

    我有一个 Pandas DataFrame 其中包含流量计开始测量流量的日期以及该站退役的日期 我想生成一个以图形方式显示这些日期的图 这是我的数据框的示例 import pandas as pd data index 40623 4063
  • 将团队构建输出文件夹中的文件包含到 XAP 中

    我正在尝试使用 TFS 2010 对 Windows Phone 7 1 项目进行持续集成 有2个资源项目 用于本地化的 Win32 项目 和主要的 Windows Phone 项目 我已将上述 2 个项目的项目输出复制到主 WP 项目中的
  • Docker 堆栈在 Windows 中部署

    我在 docker stack windows 中有一些问题 我们可以在Windows 2016中启用docker stack吗 是否完全支持 如果是 我们如何启用 我们如何使用此文件自动创建 swarm 集群 我搜索过 google 但找
  • 服务器作曲家安装 --no-dev 被杀死

    当我尝试更新包时在服务器中 composer install no dev 结果是 我该如何修复它 看起来像composer install正在尝试更新软件包 因此您可能没有composer lock文件在你的项目中 在这种情况下compo
  • CFDictionary 获取 Swift3 中键的值

    我在访问 CFDictionary 中的特定 或任何 键时遇到问题 老实说 我真的不明白你需要在 Swift 中执行此操作的方式 而且我认为它过于复杂 My Code if let session DASessionCreate kCFAl
  • Jetpack Compose - 使 LazyRow 中的第一个元素与屏幕中心对齐

    我想获得一个LazyRow看起来像这样 aaa b bb cccc dd w x 是一屏宽度 元素的大小各不相同 但它们之间的间距是固定的 我想我可以添加一些开始内容填充LazyRow以便 aaa 可组合项与屏幕中心对齐 但我不知道它的宽度
  • 带空格的 Bash 变量

    我在 Windows 下的 MinGW shell 中面临下一个问题 我在我的 etc profile表达方式 export GIT SSH c Program Files TortoiseGit bin TortoisePlink exe