我有一个可以锁定 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 手册页的部分。