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 分号等于换行符不完全正确吗? 的相关文章

随机推荐

  • 如何从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 的搜索词组合 下面是一个简单