আমার লগতে সমস্ত লেখার জন্য দুটি কাঁটাযুক্ত ফাংশন সহ একটি বাশ স্ক্রিপ্ট রয়েছে। উভয় শেষ হয়ে গেলে, আমি এই লগটি মুছতে চাই।
আমি যদিও সমস্যাটি করছি তা হ'ল এটি processFinishCountকখনই একের বেশি নয়। প্রতিটি forked প্রক্রিয়া একটি দখল করে কপি ভাগ পরিবর্তনশীল এবং বৃদ্ধি কপি যখন এটি কল যে delete_log?
ভেরিয়েবলটি সঠিকভাবে বর্ধিত হয় তা আমি কীভাবে নিশ্চিত করতে পারি?
processFinishCount=0
delete_log()
{
let processFinishCount++
if ["$processFinishCount" == 2]; then
rm log.txt
else
echo `$processFinishCount task(s) finished" >> log.txt
fi
}
function_one()
{
...
delete_log
}
function_two()
{
...
delete_log
}
function_one &
function_two &
ভেরিয়েবলটি প্রক্রিয়াফিনিশকাউন্ট হয় তবে যদি বিবৃতিতে প্রসেসকাউন্ট থাকে।
—
জয়ছ্রিস
এছাড়াও কাঁটাচামচ ঘটে যখন বৈশ্বিক চলক 0 হয়। সুতরাং উভয় কাঁটাচামচ প্রক্রিয়া 0 দিয়ে শুরু হবে এবং 1 তে বৃদ্ধি পাবে One
—
জয়ছ্রিস
@ জাইক্রিস, ভেরিয়েবলের পার্থক্যটি কেবল একটি টাইপোর ছিল <br বাহ্যিক ফাইলটি একটি বৈধ সমাধান। আমি চেষ্টা করব যখন আমি সোমবার কাজে ফিরব
—
জেমস ওয়েবস্টার