在 shell 脚本中锁定多个文件

在 shell 脚本中锁定多个文件

我有一个可以锁定 1 个文件的 C 程序。我需要锁定多个文件,因此这里的解决方案是运行该程序的多个实例,但这也意味着打开多个终端(打开的终端数量与要锁定的文件一样多),因为一旦程序开始运行,该终端无法使用。

我尝试使用以下命令来查看它是否有效。我需要将此命令复制几次到脚本中才能实现我的最终目标,但以下命令给了我一个奇怪的错误

konsole --workdir/ -e ./lock /vol4/commit/file_1

将打开一个新窗口,并显示以下错误消息。

警告:找不到“/vol4/commit/lock /vol4/commit/file_1”,而是启动“/bin/bash”。请检查您的个人资料设置。

你能告诉我这里出了什么问题吗?

答案1

/vol4/commit/file_1是一个看起来很奇怪的文件路径,但无论如何......

需要运行多个终端。您可以在后台运行命令,这将使终端可用于执行进一步的命令。只需附加&到命令行末尾即可。例如,

./lock /vol4/commit/file_1 &

来自Bash 手册页

列表

列表是由运算符;&&&或之一分隔的一个或多个管道的序列,并且可以选择以、或 之一││终止 。;&<newline>

[...]

如果命令由控制运算符终止&,则 shell 会在子 shell 的后台执行该命令。 shell 不等待命令完成,返回状态为 0。

另请参阅中给出的信息作业控制Bash 手册页的部分。

相关内容