Bash 分号等于换行符不完全正确吗?

2023-11-25

我在多篇文章中读到分号(;) 在类 UNIX shell 中等于换行。
然而,以下内容让我感到困惑,我也没有运气用谷歌搜索它。

我猜这是一个问题do在 shell 中,但“bash 分号 do”并不是最适合 google 的搜索词组合。

下面是一个简单的for陈述。

for i in {1..10}
do
echo "hi"
echo "bye"
done

正如许多 Stack Overflow 专家所言,每个换行符都可以用分号代替。

所以..我们有以下“相同”声明。

for i in {1..10}; do; echo "hi"; echo "bye"; done

我们得到:

-bash: syntax error near unexpected token `;'

分号到底是什么?这是否只是一个独特的问题do?


看着的语法for/do loop,

for name [ [in [words …] ] ; ] do commands; done

我们可以看到do接下来是commands立即,所以在之后使用换行符do不会替换分号,而是替换空格。

描述为复合命令还说

在大多数情况下,复合命令描述中的命令列表可以通过一个或多个换行符与命令的其余部分分隔,并且后面可以用换行符代替分号。

但没有任何地方说你可以插入随机分号。 “每个换行符都可以用分号替换”是一个过于笼统的说法,并且不正确。

更多手动证据:在有关部分命令列表,它说(强调我的):

A list是由一个运算符分隔的一个或多个管道的序列;, &, &&, or ||,并可选择由以下之一终止;, &, or a newline.

在这些列表运算符中,&& and ||具有同等优先级,其次是; and &,具有相同的优先级。

一系列的一个或多个换行符可能出现在list分隔命令,相当于分号。

所以换行符相当于分号在命令列表中.

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

Bash 分号等于换行符不完全正确吗? 的相关文章

  • bash 支持字边界正则表达式吗?

    我试图在再次添加该单词之前匹配列表中是否存在该单词 以避免重复 我正在使用 bash 4 2 24 并尝试以下操作 foo bmyword b also foo
  • 在bash中,是否有相当于“错误消息”的东西

    在 perl 中 您可以使用错误消息退出die some msg bash 中是否有等效的单个命令 现在 我正在使用命令来实现这一点 echo some msg exit 1 你可以很容易地自己推出 die echo 1 gt 2 exit
  • 从 Amazon S3 存储桶下载文件的脚本

    尝试编写脚本以从 Amazon S3 存储桶下载文件 cURL 网站上的示例遇到问题 下面的脚本产生 我们计算的请求签名与您的签名不匹配 假如 检查您的密钥和签名方法 感谢任何帮助 bin sh file filename php buck
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1
  • 在 bash 中使用单个命令为 shell 变量分配默认值

    我对 bash 3 00 shell 脚本中的变量进行了大量测试 如果未设置变量 则它会分配默认值 例如 if z VARIABLE then FOO default else FOO VARIABLE fi 我似乎记得有一些语法可以在一行
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • bash 中 :-(冒号破折号)的用法

    bash中这种风格的含义是什么 PUBLIC INTERFACE eth0 目的是什么 If PUBLIC INTERFACE存在且不为null 则返回其值 否则返回 eth0 实际上有一些记录在bash 手册页 http linux di
  • shell脚本中的\r字符

    我在尝试执行 shell 脚本时收到以下错误 r command not found line 2 请提出同样的解决方案 以下是脚本中使用的初始行 bin sh if lt 1 then echo ERROR Environment arg
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • C程序调用shell脚本

    我有一个小型 C 程序 调用 shell 脚本 myScript sh 我得到的 ret 值为 256 请帮助我了解系统调用出了什么问题 int main int ret ret system myScript sh ret gt gt r
  • 迭代 bash 脚本中的变量名称

    我需要在一堆文件上运行一个脚本 这些文件的路径被分配给train1 train2 train20 我想 为什么不使用 bash 脚本使其自动执行呢 所以我做了类似的事情 train1 path to first file train2 pa
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 对目录中的所有文件执行命令

    有人可以提供执行以下操作的代码 假设有一个文件目录 所有这些文件都需要通过程序运行 该程序将结果输出到标准输出 我需要一个脚本 该脚本将进入一个目录 对每个文件执行命令 并将输出连接到一个大输出文件中 例如 要在 1 个文件上运行命令 cm
  • 使用 find 命令搜索直到第一个匹配项

    我只需要搜索可以在任何地方的特定目录有没有办法运行此命令直到第一个匹配 谢谢 我现在使用 find noleaf name experiment type d wc l 正如鲁道夫 米尔鲍尔 Rudolf M hlbauer 所提到的 qu
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • 动态参数值取决于另一个动态参数值

    启动前提 非常严格的环境 Windows 7 SP1 Powershell 3 0 使用外部库的可能性有限或不可能 我正在尝试重写之前创建的 bash 工具 这次使用 PowerShell 在 bash 中 我实现了自动完成功能 以使该工具
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • 在 iOS 模拟器中安装应用程序的脚本

    我正在尝试自动化构建应用程序 运行单元测试以及最终运行 UI 测试的过程 我正在通过命令行 xcodebuild sdk iphonesimulator6 0 在某个目录中构建应用程序 如何通过命令行 在 Library Applicati
  • 如何从 bash 数组中删除元素而不展平数组

    我想创建一个采用 bash 数组的函数 如下所示 a element zero element one element two 并删除一个元素 如 元素一 并留下一个数组 如下所示 a element zero element two 这样
  • 在 bash 脚本中提取 XML 值 [重复]

    这个问题在这里已经有答案了 我正在尝试从 xml 文档中提取一个值 该文档已作为变量读入我的脚本中 原始变量 data is

随机推荐

  • 如何从rabbitMQ中永久删除celery任务?

    我当前的 celery 设置有大约 10 000 个计划任务 我没有意识到计划任务是什么 并决定使用它们提前几个月发送后续电子邮件 回想起来 将任务安排在未来超过 1 小时可能永远不是一个好主意 因为每次重新启动工作程序时 它都必须重新接收
  • 清单嵌入和外部 - 哪个优先?一个可以凌驾于另一个之上吗?

    当可执行文件具有嵌入的清单和相应的清单时 manifest文件 哪个清单具有优先权 只加载了一个吗 一个可以凌驾于另一个之上吗 我只是用谷歌搜索一下CSI视窗 外部清单 优先级 1 最低 内部清单 优先级 2 覆盖外部清单
  • Pandas 时间序列假日规则偏移

    尝试使用 pandas tseries holidays 类定义一组规则 但无法弄清楚如何基于另一个规则创建规则 我有以下规则 但随后想创建另一条规则 将原始规则抵消一个工作日 感恩 Holiday Thanksgiving Day mon
  • 如何用 2 个或更多类实现相同的方法?

    我想写一个TCheckBox and TRadioButton后代有3个相同的方法 TMyCheckBox class TCheckBox procedure DoSomething1 procedure DoSomething2 proc
  • 用于 PHP 的 Google 日历 API 获取日历事件的简单只读请求

    我想为网站编写一些简单的 PHP 代码 以使用 Google 日历 API V3 对公共 Google 日历事件列表进行只读访问 我只需要在网页上显示日历中即将发生的事件的列表 我已经阅读了开发人员文档并查看了入门部分和获取事件示例代码但我
  • TinyMCE 与 AJAX(更新面板)永远没有价值

    我想对更新面板内的文本区域使用富文本编辑器 我找到了这个帖子 http www queness com post 212 10 jquery and non jquery javascript rich text editors通过这个问题
  • 有没有办法在按下弹出框外部时不让弹出框消失?

    我知道 SDK 文档说 点击弹出窗口内容之外的地方会自动关闭弹出窗口 但我确信这里的聪明人找到了方法 也许我应该覆盖弹出窗口关闭功能 Thanks 编辑 我尝试按照此处的建议使用 passthroughViews 并且效果完美 下面是任何需
  • 文本溢出:省略号不起作用

    这就是我尝试过的 参见here body overflow hidden span border solid 2px blue white space nowrap text overflow ellipsis 本质上 当窗口变小时 我希望
  • Bluebird promisify 和回调,没有错误参数

    我试图承诺一个不使用的第三方库callback err data 图案 相反 他们总是回来callback data and throw关于错误 Promise promisifyAll horse var p Promise defer
  • 如何使用工作空间路径名在 MacOS 上从命令行启动 eclipse

    在Linux上 eclipse PathnameToWorkspace 工作正常 并在工作区上启动 eclipse 鉴于 MacOS 应用程序树结构 我一直无法弄清楚 MacOS 的道德等价物 我怀疑这不是一个难题 eclipse data
  • 在 Electron 中使用 ipc 从渲染器设置全局变量

    渲染器 js ipcRenderer sendSync setGlobal globalVarName varInner varInner2 result main js global globalVarName varInner varI
  • 使用 @Async 嵌套 @Transactional 方法

    我将 Spring 与 JPA 结合使用 我有 EnableAsync and EnableTransactionManagement打开 在我的用户注册服务方法中 我调用了一些带注释的其他服务方法 Async 这些方法可以执行各种操作 例
  • Scala 返回一个带有 0 个参数的 void 函数,语法丑陋?

    给定一个定义如下的方法 def descendEach times Int f gt Unit for i lt 1 to times other code f 当我使用这种方法时 我希望能够写 gd descendEach 20 prin
  • 从其他 T4 模板运行 T4 模板

    有谁知道是否可以在 VS2010 内从另一个 T4 模板运行 T4 模板文件 Thank 是的你可以 这就是我正在做的 string templateText File ReadAllText Host ResolvePath templa
  • 访问资产目录中具有特定分辨率的图像

    我有一个名为 SmileyFace 的图像集 其中包含 1x 2x 和 3x 图像尺寸 我想将图像集中的特定尺寸复制到粘贴板 如何在下面的代码中以编程方式引用 1x 2x 或 3x let image UIImage named Smile
  • 当我使用 selenium 时 Firefox 想要更新?

    我的计算机上的 Firefox 是最新的 但当我使用 selenium 时 有时它会说我需要或应该更新 从而搞乱我的程序 最终这个窗口会阻止我的程序工作 有什么办法可以阻止这个吗 谢谢 如果这是在您有权访问 Firefox 的计算机上 则有
  • dynamic_cast<> 有多快

    大约与典型的相比std string operator 我在下面提供了更多详细信息 我不确定它们是否有任何相关性 具有复杂性或近似值的答案就足够了 谢谢 Details 我将在列表的 for 循环中使用它来查找一些特定的实例 我估计我的平均
  • 如何使用 ASP.NET Core 解决 REACT 中的 CORS 错误

    我有一个 ASP NET Core Web API 和一个单独的 React 应用程序 Web API 使用 Windows 身份验证 当部署到服务器时 我没有任何问题 但是当我尝试在本地运行应用程序时 我会收到 CORS 错误 并且仅在
  • 我的 MySQL 服务器是哪个版本?

    确定 MySQL 服务器软件的确切版本号的查询语法是什么 您可以使用SHOW VARIABLES SHOW VARIABLES WHERE Variable name version
  • Bash 分号等于换行符不完全正确吗?

    我在多篇文章中读到分号 在类 UNIX shell 中等于换行 然而 以下内容让我感到困惑 我也没有运气用谷歌搜索它 我猜这是一个问题do在 shell 中 但 bash 分号 do 并不是最适合 google 的搜索词组合 下面是一个简单