pid=`cat $pidfile` 或读取 pid <$pidfile?

2024-01-09

我读了很多init.d脚本和:

pid=`cat $pidfile`

线条让我悲伤。我不明白为什么人们不使用:

read pid <$pidfile

最后一个示例使用 POSIX 兼容语法,但不执行fork/exec运行外部进程(cat).

最后一个解决方案还允许在第一个换行符之后跳过内容。

有没有什么陷阱read命令(尽管它执行分割为字段)?

UPDATE。有些人使用 shell 的非可移植扩展,例如:

如何将文本文件中的变量获取到 Bash 变量中 https://stackoverflow.com/questions/8684447/how-to-get-variable-from-text-file-into-bash-variable

pid=$(<$pidfile)

The read pid < file方式是最佳实践出于你所说的原因:比 fork/exec 便宜得多cat.

至于为什么这么多脚本以昂贵的方式这样做,我只能推测。可能是从其他人的脚本中剪切和粘贴的,加上缺乏对 shell 功能的了解,以及速度极快的 CPU。当有 Stack Overflow 时谁会阅读手册页? :-) 特别是 shell 手册页由于引入了所有术语,对于新手来说是一本难以阅读的参考手册。

谁说猫的无用使用是管道的特权吗?

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

pid=`cat $pidfile` 或读取 pid <$pidfile? 的相关文章

随机推荐

  • 事务无法通过 Task.WhenAll 处理并行命令

    我的 Postgres 数据库中有一些主表 如 Companies 和许多从属表 如 CompanyAddresses CompanyPaymentInfos 等 CREATE TABLE Companies Id uuid NOT NUL
  • 对变量参数 Sass mixins 进行数学运算

    我喜欢使用带有像素后备的 rem 单位来调整 CSS 大小 并尝试制作 mixin 来帮助解决这个问题 对于字体大小 这很简单 mixin font size size font size size px font size size 10
  • 用于旋转器的 Android Kotlin onItemSelectedListener 不起作用

    我有一个带有一些物品 绳子 的旋转器 我想将选定的项目添加到列表中 我在网上读到我应该使用onItemSelectedListener而不是onItemClickListener 我实现了这个 但我不知道如何完成将其添加到列表的步骤 cla
  • 如何使用node在redis中存储二进制对象?

    我试图在 redis 中保存一个二进制对象 然后将其作为图像返回 这是我用来保存数据的代码 var buff new Buffer data data base64 client set key new Buffer data data b
  • 当检查类型样式为复选标记时,iTextSharp 5.5.6 输入十字符号

    这个问题之前被问过 iTextSharp 5 5 6 0 错误 复选框勾选标记更改 https stackoverflow com questions 30203307 itextsharp 5 5 6 0 bug check box ti
  • 避免在 DB Float 列中插入指数值

    我有一张像这样的桌子 CONTACT Name Null Type CONTACT ID NOT NULL NUMBER
  • jquery获取表单值,多种表单

    我的页面上有多个表单 我需要获取提交的表单的值 但没有指定表单 document ready function form submit function return submitForm 并且在 js 文件中 submitForm 应该标
  • 如何从JAVA中的字符串数组列表中创建单引号中的逗号分隔字符串

    我需要 Java 来触发 MS SQL 上的查询 例如 select from customer where customer name in abc xyz pqr 但我的 IN 子句值采用字符串 ArrayList 的形式 例如 列表看
  • 带有 Gradle 应用程序插件的 Kotlin 应用程序

    我正在尝试使用创建一个简单的 HelloWorld 应用程序kotlin gradle 和梯度application插入 当我使用以下设置运行它时 出现以下错误 Error Main method is not static in clas
  • 如何在Python中将\xXY编码字符转换为UTF-8?

    我有一个文本 其中包含 xaf xbe 等字符 据我了解 这个问题 https stackoverflow com questions 889941 which encoding uses the x backslash x prefix
  • 使用 jdbc 连接到 Google Cloud Spanner 模拟器时,需要不需要的凭据

    当我尝试使用 Google Cloud Spanner 开源 JDBC 驱动程序进行连接时 收到以下错误消息 应用程序默认凭据不可用 如果在 Google Compute Engine 中运行 则它们可用 否则 必须定义环境变量 GOOGL
  • 如何在 SQL Server 中创建触发器来阻止特定 IP 地址的登录用户?

    我注意到大量定期从特定 IP 地址使用 SA 帐户进行登录尝试 我想使用 SQL 触发器或其他一些方法来根据用户的 IP 地址阻止这些用户访问数据库 我能够创建一个数据库表来通过一个存储过程收集失败的尝试 我计划安排该存储过程每 10 分钟
  • 合并工作表并在 Excel 中添加列

    我有一个工作表 其中包含多个选项卡 用于标识不同的数据源 我需要将所有工作表合并为一个 并添加一个包含工作表名称的列作为新组合工作表的一部分 我找到了以下代码 如果我剪切 粘贴到我的工作表中 它就像一个魅力 但我有几个这样的工作簿 我必须能
  • 获取 CSS 属性列表

    你好 有没有办法检查 HTML 元素应用了哪些 CSS 属性 我不需要任何浏览器插件 使用 javascript 我想获取 html 元素上设置的所有 CSS 属性的列表 如果那不可能 我总是可以编写 100 行代码并检查每个 css 属性
  • Django Rest Framework - 更新外键

    我对使用 Django Rest Framework 遇到的这个问题感到有点沮丧 我正在使用一个viewset 有一个custom serializer 这个序列化器有它的depth set to 1 当我查询此视图集时 我得到了正确的数据
  • 调用 free 之前检查 NULL

    许多 C 代码释放指针调用 if p free p 但为什么 我认为 C 标准说的是free给定 NULL 指针 函数不会执行任何操作 那么为什么还要进行另一次显式检查呢 构造 free NULL 在 C 中一直没问题 回到 Dennis
  • 如何避免换行填充?

    我对 HTML 最大的抱怨是换行符在元素之间添加了一点空间 jsFiddle http jsfiddle net SpeTC 这可能会搞乱子元素大小的布局exactly适合他们的父母 我在某处读到 您可以通过使用如下注释来删除这种隐式填充
  • 如何使用 Spring Boot 和 @FeignClient 发送 Bearer 授权令牌

    我正在使用 Spring Boot 编写一个与 HTTP Rest 服务器交互的应用程序 我连接的服务器之一 Wit ai 使用承载者授权令牌 产生成功响应的卷曲请求如下所示 GET message q sample message HTT
  • 在列表框中选择相同的索引

    我正在 asp net 中制作一个网站 我有 2 个列表框 lbxPlayer1 and lbxPlayer2 lbxPlayer1 Items Add bob lbxPlayer1 Items Add jack lbxPlayer1 It
  • pid=`cat $pidfile` 或读取 pid <$pidfile?

    我读了很多init d脚本和 pid cat pidfile 线条让我悲伤 我不明白为什么人们不使用 read pid lt pidfile 最后一个示例使用 POSIX 兼容语法 但不执行fork exec运行外部进程 cat 最后一个解