printf %s\\n "$-"
একক স্ট্রিংয়ে একক অক্ষরের বিকল্পগুলি তালিকাবদ্ধ করবে।
এই প্যারামিটারটি ব্যবহার করা যেতে পারে:
set -f -- ${-:+"-$-"}
echo *don\'t* *glob* *this*
set +f "$@"
-f
একসাথে $-
- যদি থাকে তবে - এর জন্য একটি মান সংরক্ষণ করার সময় প্রথমে শেল আইলনাম এক্সপেনশনটি অক্ষম করতে $1
। এর পরে, কোনও গ্লোব দেখা যায় না এবং শেষ হয়+f
গ্লোবস আইলনেম প্রসারণটি আবার সক্ষম হয় এবং সম্ভবত অক্ষমও হয়।
উদাহরণস্বরূপ, যদি -f
আইলনাম এক্সপেনশনটি ইতিমধ্যে অক্ষম করা হয় যখন এর জন্য মানটি $-
প্রথম সংরক্ষণ করা হয়েছিল, তবে এর সংরক্ষিত মানটি হবে (কমপক্ষে) :
f
এবং তাই set
আবার যখন চালানো হয়, এটি কাজ করে:
set +f -f
আপনি ঠিক যেখানে শুরু করেছিলেন তা কেবল আপনাকে পিছনে ফেলে।
set +o
সব তালিকা প্রস্তুত করা যাবে set
টেবিল শেল অপশন (দেখুন জেসনের উত্তর জন্য shopt
সক্ষম - যে একটি শব্দ - অপশন) একটি ফর্ম যে শেল reentry জন্য নিরাপদ হবে। এইভাবে, আপনি এছাড়াও করতে পারেন:
state=$(set +o)
set -some -crazy -options
eval "$state"
যথাক্রমে শেল বিকল্পগুলির স্থিতি সংরক্ষণ, পরিবর্তন এবং পুনরুদ্ধার করতে।
হ্যান্ডেল করতে shopt
আয়ন এবং set
এক বারেই টেবিল বিকল্পগুলি:
state=$(set +o;shopt)
#do what you want with options here
eval "$state"
শেলটির বর্তমানে সেট করা সমস্ত ভেরিয়েবলের একটি তালিকা যুক্ত করতে আপনি কোনও যুক্তি set
ছাড়াই কল করতে পারেন - শেলের পুনরায় প্রবেশের জন্য উদ্ধৃতও। এবং আপনি - ব্যাশে করতে পারেন - পাশাপাশি typeset -fp
বর্তমানে ঘোষিত সমস্ত শেল ফাংশন অন্তর্ভুক্ত করতে কমান্ডটি যুক্ত করতে পারেন। আপনি সব একসাথে এবং eval
প্রস্তুত যখন একসাথে করতে পারেন । এমনকি এর alias
জন্য আরও কিছু যুক্তি ছাড়াই আপনি কল করতে পারেন । যদিও ... এটি আবরণ পারে। আমি নেই "$@"
- আপনি একটি রাখা আছে চাই যা bash
প্রথম বিন্যাস, আমি কাজ করার আগে অনুমান, set
।
নাহ, আছে trap
। এই এক সামান্য মজার। সাধারণত:
trap 'echo this is my trap' 0
(echo this is my subshell; trap)
... শুধু প্রিন্ট হবে এই আমার subshell হয় কারণ subshell একটি নতুন প্রক্রিয়া এবং নিজস্ব সেট পায় trap
গুলি - এবং তাই কোনো উত্তরাধিকারী না trap
গুলি কিন্তু যারা যা তার পিতা বা মাতা স্পষ্টভাবে উপেক্ষিত হয়েছে - (যেমন trap '' INT
) ।
যাহোক:
trap 'echo this is my trap' 0
save_traps=$(trap)
trap
কমান্ড সাবস্টিটিউশন সাবসেলের মধ্যে এটি প্রথম এবং একমাত্র কমান্ড চালিত হলে বিশেষত আচরণ করে traps
যেটি শেলটিতে নিরাপদ পুনরায় প্রবেশের জন্য উদ্ধৃত হওয়া একটি ফর্ম্যাটে প্যারেন্ট শেলের বর্তমানে সেট করা একটি তালিকা পুনরুত্পাদন করবে । এবং তাই আপনি কি করতে পারেন save_traps
, তারপর set
আর্গুমেন্ট ছাড়া - বিশ্রামের এবং সমস্ত ইতিমধ্যে উল্লিখিত - এতে প্রায় কাছাকাছি সব শেল রাষ্ট্র উপর একটি লক পেতে। যদিও আপনি স্পষ্টভাবে যুক্ত করতে export -p
এবং readonly -p
মূল শেল বিভিন্ন বৈশিষ্ট্যগুলি পুনরুদ্ধার করতে চাইতে পারেন ।
যাইহোক, যথেষ্ট।
set +o
এবং ব্যবহার করতে হবেshopt
? (shopt
একটি শব্দ হিসাবে সক্ষম হওয়ার জন্যsettable
, ম্যান পেজে ব্যবহৃত হয়, সুতরাংshoptable
আমার জন্য কাজ করে)