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? 的相关文章

  • 如何从字符串中提取数字?

    我有包含路径的字符串 string toto titi 12 tata 2 abc def 我只想从该字符串中提取数字 要提取第一个数字 tmp string toto titi num1 tmp tata 要提取第二个数字 tmp str
  • 如何在C中将UTC时间转换为本地时间?

    这是一个简单的问题 但解决方案似乎远非简单 我想知道如何从 UTC 转换为本地时间 我正在寻找一种标准的 C 解决方案 并且或多或少保证可以在任何位置的任何计算机上工作 我已仔细阅读以下链接 但在那里找不到解决方案 在C中将包含本地时间的字
  • 对于有多个孩子的单亲,正确使用 fork() 和 pipeline() 。我该如何正确地做到这一点?

    So my 上一篇文章 https stackoverflow com questions 26321100 concept any good c example of fork pipe where one parent creates
  • posix_fadvise(WILLNEED) 会使 IO 变慢吗?

    在运行 Linux 内核版本 2 6 18 194 26 1 el5 的 CentOS 5 5 机器上 我注意到 posix fadvise WILLNEED 使读取 60K 文件比常规 IO 慢了近 200 看起来实际的 fadvise
  • 在 Perl 中使用 POSIX ceil() 出现意外结果

    我一生都无法弄清楚为什么以下会产生这样的结果 use POSIX my g 6 65 my t g 4 my r t g my n r g my c ceil n print c n n 我知道印记太棒了 抱歉 我已经为我的应用程序解决了这
  • dev_t 和 ino_t 是否必须是整数类型?

    glibc 的文档保留它们是整数类型 不比 unsigned int 窄 但我没有找到说明它们必须是整数类型的标准参考 另请参阅 time t 所以最后 问题就变成了 include
  • POSIX:FreeBSD 与 Linux 中的管道系统调用

    在 Linux 2 6 35 22 generic 中 man pipe指出 pipeline 创建一个管道 一个可用于进程间通信的单向数据通道 在 FreeBSD 6 3 RELEASE p5 中 man pipe指出 pipeline
  • Bash 将字符串转换为时间戳

    我有一个格式的字符串20141225093000这代表Dec 25 2014 09 30 00我想将原始格式转换为 unix 时间戳格式 以便我可以对其进行时间操作 我如何在 bash 中执行此操作 我可以轻松地解析出这些值expr但我希望
  • 将年月(“yyyy-mm”格式)转换为日期?

    我有一个如下所示的数据集 Month count 2009 01 12 2009 02 310 2009 03 2379 2009 04 234 2009 05 14 2009 08 1 2009 09 34 2009 10 2386 我想
  • 什么是 POSIX 合规性以及它对我有何影响?

    我不断看到这个问题出现 每次我查找它时 我都无法很好地解释它是什么或它对我意味着什么 什么是 POSIX 合规性 假设我的程序仅在兼容 POSIX 的机器上运行 这对我作为程序员来说有何简化 甚至吗 POSIX http pubs open
  • 如何从标准输入读取一行,阻塞直到找到换行符?

    我试图从命令行的标准输入一次读取任意长度的一行 我不确定是否能够包含 GNU readline 并且更喜欢使用库函数 我读过的文档表明getline应该可以工作 但在我的实验中它不会阻塞 我的示例程序 include
  • 同步 I/O 是否会使线程繁忙?

    假设我正在同步 I O 套接字上执行 I O 该套接字已准备好read or write手术 这意味着调用线程不会在操作上被阻塞 无论非阻塞 SOCK NONBLOCK 套接字的阻塞性质 但以下事情我不清楚 实际转移何时发生 当套接字标记为
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • 发送/捕获 SIGTERM 的 Win32 API 模拟

    在 POSIX OS 下 有信号 API 允许向进程发送信号以将其关闭 使用kill 您可以使用sigaction捕获它并执行您需要的操作 然而 Win32不是POSIX系统 所以 如何处理可能出现的关闭事件 例如来自 任务管理器 中的 结
  • c 使用 lseek 以相反顺序复制文件

    我已经知道如何从一开始就将一个文件复制到另一个文件 但是我如何修改程序以按相反的顺序复制它 源文件应具有读取访问权限 目标文件应具有读写执行权限 我必须使用文件控制库 例如 FILE A File B should be ABCDEF FE
  • 通过 Node.js 运行 bash 脚本 - 非法选项 -o pipelinefail

    我正在尝试使用 Node js 执行 bash 脚本child process exec 然而它在文件的第二行爆炸 usr bin env bash set eo pipefail TRACE set x echo we are here
  • 使用 adb 从手机摄像头传输照片的脚本

    Story 我用手机摄像头拍照和录制视频 并将它们全部保存在我的内部存储 SD 卡上 我定期将它们备份到我的电脑上 因此我将这些相机照片保存在电脑存储中与手机存储同步 多年来 我一直通过以下方式将手机相机照片备份到电脑上 将手机插入电脑并允
  • 如何在 Mac OS X 中获取 aio 信号处理程序的用户数据

    我尝试在 Mac OS X 下使用 aio 函数进行异步文件 IO 但在将某种形式的用户数据输入信号处理程序时遇到问题 这是设置操作的代码 class aio context public aio context int fildes bo
  • 使用 SIGINT 默认处理程序时从 system() 返回值

    我遇到了一些奇怪的返回值system 当子进程从终端接收到 SIGINT 时 解释一下 从 Perl 脚本parent pl I used system 运行另一个 Perl 脚本作为子进程 但我还需要通过 shell 运行子进程 所以我使
  • Linux/POSIX:为什么 fork() 不分叉*所有*线程

    众所周知 POSIX下创建新进程的默认方式是使用fork 在 Linux 下 这在内部映射到clone 我想知道的是 众所周知 当一个人打电话时fork 子进程是用单个线程创建的 调用的线程fork cf https linux die n

随机推荐

  • 事务无法通过 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 最后一个解