'এক্সিকিউটিভ {এফডি} </ দেব / প্রহরীদগ' বাশে কি করে?


28

এটি আক্ষরিক, {fd}কোনও স্থানধারক নয়। আমার কাছে একটি স্ক্রিপ্ট রয়েছে যা এটি করে এবং এটি কোনও কিছুর উত্স হয় না, বা এটি অন্য কোথাও {fd reference উল্লেখ করে না। এটি কি বৈধ বাশ?

exec {fd}</dev/watchdog

উত্তর:


34

একটি ফাইল বর্ণনাকারী বাছাই করা এবং এটি উপলব্ধ যে আশা না করে:

exec 4< /dev/watchdog  # Was 4 in use? Who knows?

এই স্বরলিপিটি শেলটিকে একটি ফাইল বর্ণনাকারী বাছাই করতে বলেছে যা বর্তমানে ব্যবহৃত হচ্ছে না, সেই বিবরণীতে পড়ার জন্য ফাইলটি খুলুন এবং প্রদত্ত ভেরিয়েবলের ( fd) নম্বরটি নির্ধারণ করুন ।

$ exec {fd}< /dev/watchdog
$ echo $fd
10

আমি নিশ্চিত যে আপনি ঠিক বলেছেন, কারণ (1) আমি এটি কোথাও পড়ার কথা স্মরণ করছি এবং (২) আমি কেবল এটি চেষ্টা করেছি (এবং এটি কার্যকর)। তবে আমি এটি কোথাও নথিবদ্ধ খুঁজে পাইনি। (অবশ্যই, আপনি নিজের উত্তর পোস্ট করার আগে আমার কাছে দশ মিনিটেরও কম সময় ছিল)) আপনি যেখানে এটি নথিভুক্ত করেছেন তার কোনও রেফারেন্স দিতে পারেন?
স্কট 20

2
বিভাগটির ম্যান পৃষ্ঠা, ২ য় অনুচ্ছেদ দেখুন REDIRECTIONS। এটি সত্যই আপনার দিকে ঝাঁপিয়ে পড়ে না, যেহেতু তারা সুস্পষ্ট উদাহরণ দেয় না।
চিপনার

আপনি ঠিক বলেছেন, আমি এটি ম্যান ব্যাশে মিস করেছি, তবে আপনি যেখানে বলেছিলেন সেখানেই। এটি লক্ষ করা উচিত যে কোনও শব্দ, কেবল fd নয় বন্ধনীগুলিতে কাজ করবে এবং এটি একটি এফডি> = 10 নির্ধারণ করে
গ্রেগ লেভেন্টাল

3
@ স্কট, এটি কেবলমাত্র ব্যাশে নয়, এটি কেবলমাত্র 4.1 বা নতুন বাশে রয়েছে (এটি এখনও ম্যাকোজে ব্যবহৃত 3.2 রিলিজগুলিতে উপলভ্য নয়)।
চার্লস ডাফি

2
/dev/watchdogম্যাক ওএস এক্সে @ চার্লসডফির অস্তিত্ব নেই, যদিও; এটি একটি লিনাক্স-নির্দিষ্ট ডিভাইস।
ডাস্কউফ

11

ফর্ম:

{var}<filename

filenameভেরিয়েবলে ফাইল বিবরণকারী নম্বর পড়ার জন্য শেল ওপেন ফাইল তৈরি করে var{var}পুনর্নির্দেশ অপারেটরগুলির মধ্যে কোনও স্থানের অনুমতি নেই এবং ফাইল বিবরণকারী সংখ্যাটি এর চেয়ে বড় বা সমান হবে 10

এই বৈশিষ্ট্যটি মূল থেকে ছিল ksh, (2006 সালে সংস্করণ ksh93r থেকে) bashএটা অনেক পরে কপি bash-4.1-alpha2010 থেকে zshএছাড়াও চেয়ে পরিবর্তন আগে তৈরি bashথেকে zsh 4.3.42007 সালে।


2

পুনর্নির্দেশগুলি সংক্রান্ত বাশ ম্যানুয়াল বিভাগে এটি ব্যাখ্যা করা হয়েছে ।

ফাইল বিবরণকারী সংখ্যার পূর্বে থাকা প্রতিটি পুনঃনির্দেশের পরিবর্তে { বর্ণের {ফর্মের একটি শব্দ দ্বারা পূর্বে হতে পারে } এই ক্ষেত্রে, ব্যতীত প্রতিটি ফেরৎ অপারেটর জন্য >&-এবং <&-, শেল একটি ফাইল বর্ণনাকারী বৃহত্তর 10 বছরের কম বরাদ্দ এবং {তা নির্ধারণ করবে VARNAME }। যদি >&-বা <&-{ বর্ণনাম } দ্বারা পূর্বে হয়, বর্ণের মানটি ফাইল বর্ণনাকারীটিকে বন্ধ করে দেয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.