如果我运行脚本,./test.sh 100
我不会得到输出 100,因为我正在使用线程。我该怎么做才能获得预期的输出?(但我不能改变test.sh
。)
测试.sh
#!/bin/bash
FILE="number.txt"
echo "0" > $FILE
for (( x=1; x<=$1; x++)); do
exec "./increment.sh" $FILE &
done
wait
cat $FILE
增量.sh
#!/bin/bash
value=(< "$1")
let value++
echo $value > "$1"
编辑
好吧,我试过这个:
#!/bin/bash
flock $1 --shared 2>/dev/null
value=(< "$1")
let value++
echo $value > "$1"
现在,如果我使用./test.sh 100
,我总是得到类似 98 99 的东西,我工作得不是很好,我不知道如何解决它。