জিএনইউ স্ক্রিন: স্ক্রিনটি সংযুক্ত না করা না হলে স্টাফ কমান্ডগুলি করা যাবে না?


10

আমি নিম্নলিখিত স্ক্রিপ্ট আছে

screen -d -m -S $1                #start screen minimized
screen -S $1 -X stuff "$beast     
"                                 #stuff commands

আমি প্রথমে স্ক্রিনটি সংযুক্ত না করলে মনে হয় স্টাফের প্রভাবগুলি কিছুই করবে না? এটি কেন এবং আমি কীভাবে এই স্ক্রিপ্টটি সংশোধন করতে পারি যাতে আমার স্ক্রিনটি সংযুক্ত করার দরকার নেই?

উত্তর:


14

আপনি যখন বিচ্ছিন্ন মোডে স্ক্রিন সেশন শুরু করেন ( screen -d -m), কোনও উইন্ডো নির্বাচন করা হয় না, তাই পরে পাঠানো ইনপুটটি screen -X stuffকেবল হারিয়ে যায়। আপনাকে স্পষ্টভাবে উল্লেখ করতে হবে যে আপনি উইন্ডো 0 ( -p 0) তে কীস্ট্রোকগুলি প্রেরণ করতে চান । যাইহোক যাইহোক, আপনি যদি কোনও কারণেই সেই স্ক্রিন সেশনে অন্য উইন্ডোজ তৈরি করতে চান তবে এটি একটি ভাল ধারণা।

screen -S "$1" -p 0 -X stuff "$beast$(printf \\r)"

( কীটিকে printf \\rকঠোরভাবে অনুকরণ করতে Return; অনেকগুলি কিন্তু সমস্ত প্রোগ্রামই একটি নতুন লাইন গ্রহণ করে না ( \n)))


ধন্যবাদ! এটি নিখুঁত কাজ করে। বিষয় বন্ধ থাকার জন্য সবাইকে দুঃখিত
ডিউকভিন

আমার জন্য কাজ করে না।
ট্যানার স্ট্রঙ্ক

2

এটি সম্প্রতি unix.stackexchange.com- এ একটি প্রশ্নের উত্তর দেওয়ার চেষ্টা করার সময় প্রকাশিত হয়েছিল

সংক্ষিপ্তসারটি হ'ল স্ক্রিনটির ডিফল্ট নির্বাচিত উইন্ডো আপনার সংযুক্তি না থাকলে থাকে না, তবে গিলস আমাদের দেখিয়েছেন কীভাবে আপনি আপনার স্ক্রিন কমান্ডের সাথে যুক্তি যুক্ত করে কোনওটিকে নির্বাচিত করতে বাধ্য করতে পারেন -p 0

ব্যক্তিগতভাবে আমি স্যুইচ করার পরামর্শ দিইtmux । এখানে আপনি কীভাবে আপনার স্ক্রিন কমান্ডগুলি tmux এ কাজ করতে পোর্ট করবেন:

tmux new-session -d -n $1
tmux send-keys -t $1 "$beast\n"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.