setহ'ল একটি শেল বিল্টিন , সেট এবং আনসেট শেল বিকল্প এবং অবস্থানগত পরামিতিগুলির জন্য ব্যবহৃত।
আর্গুমেন্ট ব্যতীত, setবর্তমান লোকালে সাজানো সমস্ত শেল ভেরিয়েবল (বর্তমান সেশনে উভয় পরিবেশের ভেরিয়েবল এবং ভেরিয়েবল) মুদ্রণ করবে ।
আপনি বাশ ডকুমেন্টেশনও পড়তে পারেন ।
কয়েকটা সতর্কতা আছে।
set "$var"varমান নির্ধারণ করবে $1। যদি বা $varদিয়ে শুরু হয় , তবে সামগ্রীটি শেল বিকল্পগুলির ক্রম হিসাবে বিবেচিত হবে। যদি কোনও অবৈধ বিকল্প থাকে তবে বেশিরভাগ পসিক্স শেল ত্রুটিটি মুদ্রণ করবে। এবং ইন , এমুলেশন কেবল ত্রুটি মুদ্রণ করে না, বৈধ বিকল্পগুলিও সেট করে। প্রথম অবৈধ বিকল্পে বিকল্পগুলি সেট করা বন্ধ করার সময় , সেগুলি সমস্ত বরাদ্দ করবে। ইন :-+$var$varyashzshshkshyashzshyash
var=-fxd; set "$var"
fএবং xউপস্থিত হবে $-, যখন:
var=fdx; set "$var"
শুধুমাত্র fবর্তমান $-। উভয় ক্ষেত্রেই, fএবং ইন এবং ইমুলেশন সহ xউপস্থাপন করবে ।$-zshshksh
আপনাকে সেই পরিস্থিতি থেকে রক্ষা করতে আপনি --অবস্থানগত পরামিতি সেট করার প্রথম যুক্তি হিসাবে পাস করতে পারেন এমনকি এটি শুরু করে -বা +:
var=-fdx; set -- "$var"
নির্ধারণ $varকরা $1হবে, তার বিষয়বস্তু নির্বিশেষে।
set -- কোনও তর্ক ছাড়াই সমস্ত অবস্থানগত পরামিতিগুলি আনসেট করবে।
যদি প্রথম যুক্তিটি হয় -তবে আচরণটি অনির্দিষ্ট। সমস্ত পরিচিত POSIX শেলগুলি আনসেট xএবং vবিকল্পগুলি (ব্যতীত posh) করবে এবং -অবস্থানগত পরামিতিগুলির পরে কিছু বরাদ্দ করবে :
set -xv - -f
নিযুক্ত -fকরা হবে $1। set -এছাড়াও অবস্থানগত পরামিতিগুলি সেট করে নি। শিলি ওশও এরকম আচরণ করে। উত্তরাধিকারী আন সেট vএবং xবিকল্পগুলি না।
কেবলমাত্র পসিক্স শেল ব্যতিক্রম yash, যা -প্রথম অবস্থানিক পরামিতি হিসাবে বিবেচনা করে :
$ yash -c 'set -xv - -f; printf "%s\n" "$@"; printf "%s\n" "$-"'
+ printf %s\n - -f
-
-f
+ printf %s\n cvx
cvx
শিলি sh এমনকি -যুক্তি উপস্থিত থাকলে কিছুই করেনি :
$ schily-sh -c 'set -v - -f; printf "%s\n" "$@"; printf "%s\n" "$-"'
<blank line>
s
$ schily-sh -c 'set -v -- -f; printf "%s\n" "$@"; printf "%s\n" "$-"'
-f
vs