减去1这是我想要做的事:bash脚本 - 添加/从文件
我想打一个脚本,我可以调用要么counter_use in
或counter_use out
。如果我输入in
我想要一个计数器给名为“counter”的文件中的数字值加+1,如果我输入out
,我想从文件中减去1。
我还希望脚本输出Logged in
如果在计数器中的值是等于或大于1和Not logged in
更高如果计数器等于0
如果我硬编码计数器的最后一部分运行过程中出现一个具体的数字。问题是第一部分。
echo "In or out?"
read input > counterFile
if grep -q "in" counterFile
then //what should I do here so that it adds +1 to a file called
counter?
elif grep -q "out" counterFile
then //what should I do here so that it subtracts -1 to a file called
counter?
if [ $counter -ge 1 ]
then
echo "Logged in"
elif [ $counter -eq 0 ]
then
echo "Not logged in"
else
echo "Wrong input"
fi
这并不是真的可靠计数,因为你有一个竞争条件。您需要在更新期间锁定计数器文件。 – user1934428
你能解释一下吗? –
您读取计数器文件,稍后再编写更新的计数器文件。如果第二个进程同时运行此脚本,它可以读取您的阅读和写作之间的计数器文件,因此不会看到您的更新值。 – user1934428