2011-01-18 9 views
8

वर्तमान में मैं एक स्क्रिप्ट का उपयोग कर रहा एक डेमॉन अंडे देने के लिए:क्या जीएनयू स्क्रीन में एंटर कुंजी भेजने का कोई आसान तरीका है?

screen -r user -X stuff "spawn daemon" 
screen -r user -X eval "stuff \015" 

वहाँ कुंजी ("\ 015") दर्ज करें, या वास्तव में ऐसा करने का एक बेहतर तरीका है भेजने के लिए एक आसान तरीका है? (मुझे स्क्रीन का उपयोग करना है।)

मुझे लगता है कि क्योंकि मैं स्क्रीन को संलग्न नहीं कर रहा हूं, इसलिए मैं "स्पॉन डेमन" कमांड का परिणाम/आउटपुट प्राप्त नहीं कर पाऊंगा। क्या वो सही है?

उत्तर

10

मैं हमेशा इस तरह यह कार्य करें:

screen -r user -X stuff "spawn daemon^M" 

जहाँ मैं Ctrl-V मारकर^एम मिलता है, तो दर्ज करें, कमांड लाइन पर। बैश और विम में, ctrl-v का उपयोग एंटर जैसे अक्षरों से बचने के लिए किया जा सकता है जो अन्यथा विशेष प्रभाव डालेगा।

4

दूसरे प्रश्न के लिए, आप लॉगिंग सक्षम कर सकते हैं, और लॉग फ़ाइल से पढ़ सकते हैं।

+0

धन्यवाद। मैं इसके बारे में भूल गया था। – Dijkstra

1

भेजा जा रहा है सीआर:

echo -e "Some text\015" > /dev/pts/1 

भेजा जा रहा है वामो:

echo -e "Some text\012" > /dev/pts/1 

वास्तविक स्क्रीन संख्या के साथ डिवाइस रास्ते में नंबर बदलें।

2

यह समाधान मेरे मामले में काम कर रहा है:

screen -r user -X stuff "spawn daemon$(printf \\r)" 
+0

काफी सुरुचिपूर्ण। विशेष रूप से क्योंकि आप इस चरित्र को एक चर 'n = "$ (printf \\ r)" में संग्रहीत कर सकते हैं और बाद में इसे' $ n' लिखने का उपयोग करते हैं –

संबंधित मुद्दे