প্রতিধ্বনি $ -1 প্রদর্শন কি?


14

কি আউটপুট নেই echo $-1, echo $-2, echo $-3.. মানে কি?

আমার একটি লিনাক্স বাক্সে এটি আমাকে দেখায়:

echo $-1
imsBEl1
echo $-2
imsBEl2

এবং অন্য একটি লিনাক্স বাক্সে এটি দেখায়:

echo $-1
himBH1
echo $-2
himBH2

তারা কিছু মেমরি অবস্থান বা অন্য কিছুতে ম্যাপিং করছে?


1
শিরোনামটি সাইডবারে নিম্নলিখিত সমস্যাটি প্রদর্শন করছে: meta.stackexchange.com/q/229363/205964
IQAndreas

আমি একটি প্রস্তাবিত সম্পাদনা যুক্ত করেছি যা এটি সংশোধন করার চেষ্টা করেছে, তবে আমি শীঘ্রই বুঝতে পেরেছিলাম যে এটি কেবলমাত্র সাইডবার যা ম্যাথজ্যাক্সকে রেন্ডার করে, যার অর্থ শিরোনামটি যখন এই পৃষ্ঠায় থাকে তখন এটি কেবল অপ্রয়োজনীয় ব্যাকস্ল্যাশ হয়।
আইকিউ আন্দ্রেয়াস

উত্তর:


19

POSIX সংজ্ঞায়িত $ - হিসাবে:

-

(হাইফেন।) অনুরোধের ভিত্তিতে, নির্দিষ্ট বিশেষ অন্তর্নির্মিত কমান্ড দ্বারা বা শেল দ্বারা স্পষ্টতই বর্তমান বিকল্প পতাকাগুলিতে (একক বর্ণের বিকল্প নামগুলি একটি স্ট্রিংয়ে সংযুক্ত করে) প্রসারিত হয়।

সুতরাং $-আপনার শেলের বিভিন্ন ভিত্তি হতে পারে বা কীভাবে আপনি এটি চালাবেন তা হতে পারে।

1বা 2এখানে টোকেন পৃথক করা হয়। শেলটি যখন অকেজো দেখবে $, তখন এটি প্যারামিটার সম্প্রসারণ, কমান্ড প্রতিস্থাপন বা পাটিগণিতের বিস্তারের জন্য যে কোনও প্রার্থীর শুরু সনাক্ত করবে। এটি দেখেছিল $-এবং এটি প্রসারিত করেছে, বাকিটি অপরিবর্তিত রেখে দিয়েছে।

আপনি আরও তথ্যের জন্য টোকেন স্বীকৃতি বিভাগ দেখতে পারেন ।



11

মিরোস্লাভের উত্তরে যুক্ত করা:

echo $- বর্তমান শেলের বিকল্পগুলি মুদ্রণ করে (ছাড়াই) - উপসর্গ ব্যতীত)। 1 এবং 2 টি অতিরিক্ত সম্পর্কযুক্ত টোকেন।

এর অর্থ হ'ল যথাক্রমে প্রতিটি মেশিনের জন্য এই বিকল্পগুলি।

imsBEl
himBH

আমি প্রতিটি পতাকার অর্থ গবেষণা করেছি এবং নীচের অর্থ সংক্ষিপ্ত প্যারাফ্রেসিং দিয়ে সংকলন করেছি।

-i

-I বিকল্প উপস্থিত থাকলে শেলটি ইন্টারেক্টিভ হয়।

-m

মনিটর মোড। কাজ নিয়ন্ত্রণ সক্ষম করা হয়েছে।

-B

শেলটি বন্ধনী সম্প্রসারণ সম্পাদন করে ( ব্রেস সম্প্রসারণ দেখুন )। এটি ডিফল্টরূপে রয়েছে।

-s

যদি -s বিকল্পটি উপস্থিত থাকে বা বিকল্প প্রক্রিয়াকরণের পরে কোনও যুক্তি না থেকে থাকে, তবে আদেশগুলি স্ট্যান্ডার্ড ইনপুট থেকে পঠিত হবে। এই বিকল্পটি ইন্টারেক্টিভ শেলটি চালিত করার সময় অবস্থানগত পরামিতিগুলি সেট করার অনুমতি দেয়।

-E

errtrace

-l

বাশকে এমনভাবে করুন যেমন এটি লগইন শেল হিসাবে আহ্বান করা হয়েছে

-h

hashall

-এইচ ইতিহাস প্রসার

ইন্টারেক্টিভ শেলগুলির জন্য এই বৈশিষ্ট্যটি ডিফল্টরূপে সক্ষম করা হয়েছে।


3

বিদ্যমান উত্তরগুলিকে প্রসারিত করতে চেষ্টা করুন echo "${-1}"এবং echo "${-2}"- আপনি একটি "খারাপ প্রতিস্থাপন" ত্রুটি পাবেন কারণ -1পরিবর্তনশীল নাম হিসাবে পরিবর্তনের পরিবর্তে ভেরিয়েবলের নামটি সংজ্ঞায়িত না হওয়ার আগে হাইফেন একটি মান প্রতিস্থাপন করতে ব্যবহৃত হয় । উদাহরণ স্বরূপ:

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