আমি টার্মিনালে একটি কমান্ড-লাইন স্ক্রিপ্ট রাখতে চাই যা মেইল.অ্যাপে আমার "ওয়ার্ক" ইনবক্সে বার্তাগুলির মোট সংখ্যা আউটপুট করবে। ব্যবহার এইরকম দেখাবে:
$ inbox-count
48
অ্যাপ্লস্ক্রিপ্ট কোডটি এরকম কিছু করার মতো দেখাচ্ছে?
আমি টার্মিনালে একটি কমান্ড-লাইন স্ক্রিপ্ট রাখতে চাই যা মেইল.অ্যাপে আমার "ওয়ার্ক" ইনবক্সে বার্তাগুলির মোট সংখ্যা আউটপুট করবে। ব্যবহার এইরকম দেখাবে:
$ inbox-count
48
অ্যাপ্লস্ক্রিপ্ট কোডটি এরকম কিছু করার মতো দেখাচ্ছে?
উত্তর:
আপনি যদি ইনডবক্সে বার্তাগুলির সংখ্যা পেতে চান তবে কোডটির সংক্ষিপ্ত রূপটি
tell application "Mail" to ¬
get the count of messages of mailbox "INBOX" of account "Work"
আপনি যদি বিশ্বব্যাপী ইনবক্স চান তবে তার get the count of messages of inbox
পরিবর্তে আপনি ব্যবহার করতে পারেন । আপনি যদি কেবল অপঠিত বার্তা চান তবে আপনি ব্যবহার করতে পারেন get the unread count of mailbox "INBOX" of account "Work"
।
এবং আপনি যদি আরও একটি সম্পূর্ণ স্ক্রিপ্ট চান, তবে এটি কৌশলটি করবে:
#!/usr/bin/osascript
property defaultAccount : "Work"
property defaultMailbox : "INBOX"
on run args
set justUnread to false
set theAccount to missing value
set theMailbox to missing value
if defaultAccount = missing value then set defaultAccount to "-g"
if defaultMailbox = missing value then set defaultMailbox to "INBOX"
set theCount to the count of args
if theCount > 0 then
if item 1 of args = "-u" then
set justUnread to true
set theCount to theCount - 1
set args to the rest of args
else if item 1 of args = "-ug" or item 1 of args = "-gu" then
set justUnread to true
set item 1 of args to "-g"
else if theCount > 1 and ¬
item 1 of args = "-g" and item 2 of args = "-u" then
set justUnread to true
set theCount to theCount - 1
set args to the rest of args
set item 1 of args to "-g"
end if
end if
tell application "Mail"
if theCount = 0 then
set theAccount to defaultAccount
set theMailbox to defaultMailbox
else if theCount = 1 then
set theAccount to item 1 of args
set theMailbox to defaultMailbox
else if theCount = 2 then
set theAccount to item 1 of args
set theMailbox to item 2 of args
else
error character id 10 ¬
& "Usage: inbox-count [-u] [[account] mailbox]" & character id 10 ¬
& " inbox-count [-u] -g [mailbox]"
end if
set mailboxValue to missing value
if theAccount = "-g" then
if theMailbox = "INBOX" then
set mailboxValue to inbox
else
set mailboxValue to mailbox theMailbox
end if
else
set mailboxValue to mailbox theMailbox of account theAccount
end if
if justUnread then
return the unread count of mailboxValue
else
return the count of messages of mailboxValue
end if
end tell
end run
এর বেশিরভাগটি হ'ল কমান্ড-লাইন পার্সিং, কারণ এটি অ্যাপলস্ক্রিপ্টে ডান পেতে ব্যথা। তবে আপশোটটি হ'ল সেই স্ক্রিপ্টটি আপনার পথে যেমন রয়েছে inbox-count
তখন নিম্নলিখিত কমান্ডগুলি কাজ করে:
inbox-count
ডিফল্ট মেলবক্স / অ্যাকাউন্ট জুটিতে বার্তাগুলির সংখ্যা পরীক্ষা করতে।inbox-count -g
গ্লোবাল (সংযুক্ত) ইনবক্সে বার্তাগুলির সংখ্যা পরীক্ষা করতে।inbox-count Play
"প্লে" অ্যাকাউন্টের জন্য ডিফল্ট মেলবক্সে বার্তাগুলির সংখ্যা পরীক্ষা করতে।inbox-count -g Important
গ্লোবাল মেলবক্সে "গুরুত্বপূর্ণ" বার্তাগুলির সংখ্যা পরীক্ষা করতে।inbox-count Play Facebook
"প্লে" অ্যাকাউন্টের জন্য "ফেসবুক" মেলবক্সে থাকা বার্তার সংখ্যাটি পরীক্ষা করতে।এছাড়াও আপনি একটি পূর্বে লিখুন পারেন -u
সেই কমান্ড (কোন উদাঃ , inbox-count -u
, inbox-count -ug
, inbox-count -u Play Facebook
) শুধু অপঠিত গণনা জন্য। ডিফল্ট অ্যাকাউন্ট এবং মেলবক্স পরিবর্তন করতে, লাইনগুলি পরিবর্তন করুন property defaultAccount : "Work"
এবং property defaultMailbox : "INBOX"
। যদি defaultAccount
হয় missing value
বা হয় "-g"
, তবে অ্যাকাউন্টটি ব্যবহার না করার জন্য ডিফল্ট হবে; যদি defaultMailbox
হয় missing value
বা হয় "INBOX"
, তবে ডিফল্টটি হ'ল হয় কোনও নামকৃত মেলবক্স ব্যবহার করা "INBOX"
বা যদি অ্যাকাউন্ট হয় "-g"
তবে গ্লোবাল ইনবক্স ব্যবহার করা।
ls /Path/To/MailBox/*.emlx | wc -l
একটি বাক্সে বার্তাগুলির মতো কিছু প্রস্তাব দিতে যাচ্ছিলাম তবে আপনার উত্তর অবশ্যই এটির চেয়ে ভাল উত্তর। ধন্যবাদ!