要使用flock和FIFO队列来实现bash脚本,请按照以下步骤进行操作:
mkfifo /path/to/queue
exec 9<> /path/to/queue
flock -x 9
echo "task1" > /path/to/queue
echo "task2" > /path/to/queue
while read -r task <&9; do
# 执行任务
echo "Processing task: $task"
done
flock -u 9
exec 9>&-
完整的示例代码如下:
#!/bin/bash
# 创建FIFO队列文件
mkfifo /path/to/queue
# 锁定队列文件
exec 9<> /path/to/queue
flock -x 9
# 写入任务到队列
echo "task1" > /path/to/queue
echo "task2" > /path/to/queue
# 读取队列并执行任务
while read -r task <&9; do
# 执行任务
echo "Processing task: $task"
done
# 解锁队列文件并关闭文件描述符
flock -u 9
exec 9>&-
请确保将/path/to/queue
替换为实际的队列文件路径。