উত্তর:
0 8 * * 6 test $((10#$(date +\%W)\%2)) -eq 1 && yourCommand
date +%W
: সোমবারের সাথে বছরের সপ্তাহের সংখ্যা সপ্তাহের প্রথম দিন হিসাবে, আজ সপ্তাহ 39
10#$(date +%W)
: date +W
দশমিক সংখ্যায় রূপান্তর করুন এবং শেল বেস পার্সিং বিভ্রান্তি এড়ান
$((39%2))
: মডুলো অপারেশন: ফলাফল 0 (এমনকি সপ্তাহের সংখ্যা) বা 1 (বিজোড় সপ্তাহের সংখ্যা), এই সপ্তাহের ফলাফল 1, পরের সপ্তাহে 0
test 1 -eq 1
: গাণিতিক পরীক্ষা (সমান), এক্ষেত্রে ফলাফলটি বুলিয়ান সত্য
&& yourCommand
: বুলিয়ান এবং: yourCommand
পূর্ববর্তী কমান্ডের ফলাফলটি বুলিয়ান সত্য হলেই চালান
নোট করুন যে বছরটি দুটি বিজোড় সপ্তাহ পেতে পারে: 53 (এই বছর) এবং 1 (পরের বছর)
0 8 * * 6 test $(($(date +\%W)\%2)) -eq 1 && yourCommand
$((10#$(date +%W)%2)) -eq 1 && echo OK
সপ্তাহে গণনা ফলাফল চালানো আমার শেল চেষ্টা: -bash: 1: command not found
। কোনও ক্লু কেন এটি করছে? ধন্যবাদ।
test
এটি কোনও ব্যবহারকারীর আইটি কমান্ড নয়। চেষ্টা করুন:test $((10#$(date +\%W)%2)) -eq 1 && echo odd || echo even
আপনি যা দেখিয়েছেন তা "প্রতি সপ্তাহে"। তারপরে কোডটি হ'ল:
0 8 * * 6
আপনি কি নিশ্চিত যে প্রতি দুই সপ্তাহে এটি চালানো দরকার?
0 8 * * 6 expr `date +\%s` / 604800 \% 2 >/dev/null || yourCommand
echo $?
এই আদেশটি চালানোর পরে দৌড়াও , তার রিটার্ন কোডটি দেখতে - এটির সাথে এটি গুরুত্বপূর্ণ