मैं दूसरे मैक के लिए "कह" कैसे सकता हूं?


19

हमारे घर में दो मैक हैं (iMac और MacBook Pro)।

मैं sayअपने MBP पर कुछ टाइप करने के लिए कमांड-लाइन यूटिलिटी का उपयोग करना चाहता हूं और यह आईमैक पर बोलना चाहिए, न कि इंटरकॉम सिस्टम की तरह।

इसके अलावा, यह मेरी पत्नी को संदेश भेजने के लिए प्रफुल्लित करने वाला हो सकता है जबकि वह आईमैक का उपयोग कर रहा है।

क्या यह किया जा सकता है?


2
संबंधित: XKCD 530 xkcd.com/530
एंड्रयू ग्रिम

जवाबों:


26

चूंकि दोनों मैक एक ही घर में हैं, इसलिए मुझे लगता है कि वे दोनों एक ही नेटवर्क पर हैं।

सबसे पहले, आपको Remote Loginमैक पर सक्रिय करने की आवश्यकता है जहां आप ध्वनि बाहर चाहते हैं।

चेकबॉक्स पर जाएं System Preferences > Sharingऔर देखें Remote Login। फिर, अपने कंप्यूटर का उपयोग करके, टर्मिनल खोलें और इसे टाइप करें

ssh <user>@<computer name.local>

<user>आपकी पत्नी लॉगिन कहां है और <computer name>दूसरे कंप्यूटर का नाम है।

अब, ऐसा लगता है जैसे आप अपनी पत्नी के कंप्यूटर पर टर्मिनल खोल रहे हैं और आप sayजो चाहें कर सकते हैं।


यह कहता है कि ईवेंट नहीं मिला
cbmeeks

@cbmeeks कब? आपने अंतिम कार्य क्या किया है?
Locc वोल्फ

कोई बात नहीं। मैंने गलत किया। बहुत अच्छा काम करता है! lol धन्यवाद
cbmeeks

2
मैंने पहले ऐसा किया है, जब एक दोस्त के साथ कोडिंग, बढ़िया जवाब!
मोशे

2
आप कमांड्स को एक ही लाइन में जोड़ सकते हैं:ssh user@hostname 'say hello'
willWorkForCookies

20

sshदूरस्थ होस्ट पर कमांड चलाने के लिए उपयोग करने के अलावा , आप रिमोट ऐप्पल इवेंट्स का उपयोग कर सकते हैं, जिसमें एक sayकमांड भी है , साथ ही अन्य जो आपके लिए उपयोगी हो सकते हैं, जैसे display alert

लक्ष्य मशीन पर, सक्षम करें:

सिस्टम वरीयताएँ> साझाकरण> दूरस्थ Apple ईवेंट

फिर अपनी मशीन से निम्नलिखित स्क्रिप्ट चलाएँ (AppleScript Editor में, या osascriptटर्मिनल के माध्यम से):

tell application "Finder" of machine "eppc://machine-name.local"
    say "Hello"
end tell

जब आप इसे संकलित करते हैं या चलाते हैं, तो यह आपको प्रमाणित करने के लिए कहेगा। यदि आप AppleScript Editor में ऐसा करते हैं, तो यह ऑथेंटिकेशन तब तक याद रहेगा जब तक आप AppleScript Editor को खुला नहीं छोड़ते, इसलिए आपको इसे चलाने के लिए हर बार प्रमाणित नहीं करना पड़ेगा। (प्रमाणीकरण संवाद में कीचेन पर अपनी साख बचाने के लिए एक विकल्प होता है ताकि बार-बार होने वाले नुकसान से बचा जा सके।)

आप इसके साथ टर्मिनल में कमांड-लाइन से कर सकते हैं:

osascript -e 'tell application "Finder" of machine "eppc://machine-name.local" to say "Hello"'

रिमोट मशीन पर संदेश कैसे प्रदर्शित करें

आप दूरस्थ मशीन में sshrunning के साथ लॉगिन करके और दूरस्थ शेल में इस कमांड को चलाकर एक संदेश प्रदर्शित कर सकते हैं (यह दूरस्थ Apple ईवेंट का उपयोग नहीं करता है, बस रिमोट लॉगिन के लिए ssh):

osascript -e 'say "Hello" without waiting until completion' -e 'tell application "System Events"' -e 'activate' -e 'display alert "Hello!"' -e 'end'

sayआदेश भाषण एसिंक्रोनस रूप से शुरू होता है, तो यह है, जबकि भाषण खेल रहा है संदेश प्रदर्शित करने के लिए सामने से प्रणाली घटनाक्रम लाता है।

, ऐसे कमांड जो UI प्रदर्शित करते हैं, जैसे display alertऔर display dialog, दूरस्थ Apple ईवेंट्स के माध्यम से अनुमति नहीं है। एक दूरस्थ मशीन पर उन्हें एक प्रक्रिया में भेजने के लिए, आपको पहले से गुजरना होगा ssh


1

वैकल्पिक रूप से, आपको दूरस्थ डेस्कटॉप या स्क्रीन शेयरिंग का उपयोग करने से कुछ भी नहीं रोक सकता है, जो कि OSX में बनाया गया है, और टर्मिनल को लंघन के रूप में सिर्फ एक सामान्य उपयोगकर्ता के रूप में लॉग इन किया गया है।

तब आप सामान्य रूप से कह सकते हैं। या बहुत सारे ऐप हैं जो टेक्स्ट टू स्पीच करते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.