এটি হল কমান্ড এস্ক্রিপ্ট যা আমাদের একাধিক বিনামূল্যের অনলাইন ওয়ার্কস্টেশন যেমন উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটর ব্যবহার করে OnWorks ফ্রি হোস্টিং প্রদানকারীতে চালানো যেতে পারে।
কার্যক্রম:
NAME এর
escript - Erlang স্ক্রিপ্টিং সমর্থন
বর্ণনাঃ
এস্ক্রিপ্ট সংক্ষিপ্ত Erlang প্রোগ্রামগুলি কম্পাইল না করে চালানোর জন্য সমর্থন প্রদান করে
কমান্ড লাইন আর্গুমেন্ট পুনরুদ্ধার করার প্রথম এবং একটি সহজ উপায়।
রফতানি
স্ক্রিপ্ট-নাম script-arg1 script-arg2...
এস্ক্রিপ্ট escript-পতাকা স্ক্রিপ্ট-নাম script-arg1 script-arg2...
এস্ক্রিপ্ট Erlang এ লেখা একটি স্ক্রিপ্ট চালায়।
এখানে একটি উদাহরণ অনুসরণ করুন.
$ chmod u+x ফ্যাক্টরিয়াল
$ বিড়াল ফ্যাক্টরিয়াল
#!/usr/bin/env এস্ক্রিপ্ট
%% -*- এরল্যাং -*-
%%! -smp সক্ষম করুন -sname ফ্যাক্টোরিয়াল -mnesia ডিবাগ ভার্বোস
main([স্ট্রিং]) ->
চেষ্টা
N = list_to_integer(স্ট্রিং),
F = fac(N),
io:ফরম্যাট("ফ্যাক্টোরিয়াল ~w = ~w\n", [N,F])
দঙ্গল
_:_ ->
ব্যবহার()
শেষ;
প্রধান(_) ->
ব্যবহার()।
use() ->
io: বিন্যাস("ব্যবহার: ফ্যাক্টোরিয়াল পূর্ণসংখ্যা\n"),
দাঁড়ান(1).
FAC(0) -> 1;
fac(N) -> N * fac(N-1)।
$./ফ্যাক্টোরিয়াল 5
ফ্যাক্টোরিয়াল 5 = 120
$./ফ্যাক্টরিয়াল
ব্যবহার: ফ্যাক্টোরিয়াল পূর্ণসংখ্যা
$./ফ্যাক্টরিয়াল পাঁচ
ব্যবহার: ফ্যাক্টোরিয়াল পূর্ণসংখ্যা
উদাহরণে Erlang স্ক্রিপ্টের শিরোনাম একটি সাধারণ Erlang মডিউল থেকে পৃথক।
প্রথম লাইনটি দোভাষী লাইনের উদ্দেশ্যে করা হয়েছে, যা আহ্বান করে এস্ক্রিপ্ট.
যাইহোক যদি আপনি আহ্বান জানান এস্ক্রিপ্ট এটার মত
$ escript ফ্যাক্টোরিয়াল 5
প্রথম লাইনের বিষয়বস্তু কোন ব্যাপার না, কিন্তু এটি Erlang কোড ধারণ করতে পারে না
যেহেতু এটি উপেক্ষা করা হবে।
উদাহরণের দ্বিতীয় লাইনে একটি ঐচ্ছিক নির্দেশ রয়েছে এ গিয়ে emacs সম্পাদক
যার ফলে এটি Erlang সোর্স ফাইল সম্পাদনা করার জন্য প্রধান মোডে প্রবেশ করে। যদি
নির্দেশ বর্তমান এটি দ্বিতীয় লাইনে অবস্থিত হতে হবে.
যদি একটি মন্তব্য নির্বাচন করা হয় এনকোডিং এটি দ্বিতীয় লাইনে অবস্থিত হতে পারে।
বিঃদ্রঃ:
উপরে উল্লিখিত মন্তব্য দ্বারা নির্দিষ্ট এনকোডিং স্ক্রিপ্ট নিজেই প্রযোজ্য.
I/O-সার্ভারের এনকোডিং, যাইহোক, এই মত স্পষ্টভাবে সেট করতে হবে:
io:setopts([{এনকোডিং, ইউনিকোড}])
এর জন্য I/O-সার্ভারের ডিফল্ট এনকোডিং standard_io is লাতিন 1 স্ক্রিপ্ট থেকে
একটি নন-ইন্টারেক্টিভ টার্মিনালে চলে (দেখুন ব্যবহার ইউনিকোড in এরলং).
তৃতীয় লাইনে (বা দ্বিতীয় লাইন Emacs উপস্থিতির উপর নির্ভর করে
নির্দেশ), এমুলেটরকে আর্গুমেন্ট দেওয়া সম্ভব, যেমন
%%! -smp সক্ষম করুন -sname ফ্যাক্টোরিয়াল -mnesia ডিবাগ ভার্বোস
এই ধরনের একটি যুক্তি লাইন দিয়ে শুরু করা আবশ্যক %%! এবং লাইন বাকি ব্যাখ্যা করা হবে
এমুলেটরের আর্গুমেন্ট হিসাবে।
এর অবস্থান জানা থাকলে এস্ক্রিপ্ট এক্সিকিউটেবল, প্রথম লাইন সরাসরি করতে পারেন
পথ দিন এস্ক্রিপ্ট। এই ক্ষেত্রে:
#!/usr/local/bin/escript
অন্য যেকোনো ধরনের স্ক্রিপ্টের মতো, Erlang স্ক্রিপ্ট ইউনিক্স প্ল্যাটফর্মে কাজ করবে না যদি
স্ক্রিপ্ট ফাইলের জন্য এক্সিকিউশন বিট সেট করা নেই। (ব্যবহার করুন chmod +x স্ক্রিপ্ট-নাম চালু করতে
মৃত্যুদন্ড বিট।)
Erlang স্ক্রিপ্ট ফাইল বাকি Erlang থাকতে পারে উৎস কোড, একটি
ইনলাইন মরীচি ফাইল বা একটি ইনলাইন সংরক্ষণাগার ফাইল.
একটি Erlang স্ক্রিপ্ট ফাইল সবসময় ফাংশন থাকতে হবে প্রধান/1. যখন স্ক্রিপ্ট হয়
চালান, প্রধান/1 ফাংশন প্রতিনিধিত্বকারী স্ট্রিংগুলির একটি তালিকা সহ কল করা হবে
স্ক্রিপ্টে দেওয়া আর্গুমেন্ট (কোনও উপায়ে পরিবর্তিত বা ব্যাখ্যা করা হয়নি)।
যদি প্রধান/1 স্ক্রিপ্টে ফাংশন সফলভাবে ফিরে আসে, এর জন্য প্রস্থান অবস্থা
স্ক্রিপ্ট হবে 0। যদি এক্সিকিউশনের সময় একটি ব্যতিক্রম তৈরি হয়, একটি ছোট বার্তা
প্রিন্ট করা হবে এবং স্ক্রিপ্টটি প্রস্থান অবস্থা 127 এর সাথে সমাপ্ত হবে।
আপনার নিজের নন-জিরো এক্সিট কোড ফেরত দিতে, কল করুন halt(ExitCode); এই ক্ষেত্রে:
দাঁড়ান(1).
কল escript:script_name() আপনার থেকে স্ক্রিপ্ট থেকে এর পথনাম পুনরুদ্ধার করতে
স্ক্রিপ্ট (পাথের নামটি সাধারণত, কিন্তু সর্বদা নয়, পরম)।
যদি ফাইলটিতে সোর্স কোড থাকে (উপরের উদাহরণের মতো), এটি দ্বারা প্রক্রিয়া করা হবে
প্রিপ্রসেসর পিপিই. এর মানে হল যে আপনি উদাহরণস্বরূপ পূর্ব-সংজ্ঞায়িত ম্যাক্রো ব্যবহার করতে পারেন
(যেমন ?মডিউল) পাশাপাশি এর মতো নির্দেশাবলী অন্তর্ভুক্ত করে -include_lib নির্দেশ
উদাহরণস্বরূপ, ব্যবহার করুন
-include_lib("kernel/include/file.hrl")।
দ্বারা ব্যবহৃত রেকর্ডের জন্য রেকর্ড সংজ্ঞা অন্তর্ভুক্ত করতে ফাইল:read_link_info/1
ফাংশন আপনি এখানে একটি এনকোডিং মন্তব্য অন্তর্ভুক্ত করে এনকোডিং নির্বাচন করতে পারেন, কিন্তু যদি
দ্বিতীয় লাইনে একটি বৈধ এনকোডিং মন্তব্য রয়েছে যা অগ্রাধিকার দেয়।
চালানোর আগে স্ক্রিপ্টটি সিনট্যাকটিক এবং শব্দার্থিক সঠিকতার জন্য পরীক্ষা করা হবে।
যদি সতর্কতা থাকে (যেমন অব্যবহৃত ভেরিয়েবল), সেগুলি প্রিন্ট করা হবে এবং
স্ক্রিপ্ট এখনও চালানো হবে. যদি ত্রুটি থাকে, সেগুলি প্রিন্ট এবং স্ক্রিপ্ট করা হবে
চালানো হবে না এবং এর প্রস্থান অবস্থা হবে 127।
উভয় মডিউল ঘোষণা এবং রপ্তানি ঘোষণা প্রধান/1 ফাংশন হয়
ঐচ্ছিক।
ডিফল্টরূপে, স্ক্রিপ্ট ব্যাখ্যা করা হবে। আপনি এটি দ্বারা সংকলিত হতে বাধ্য করতে পারেন
স্ক্রিপ্ট ফাইলের কোথাও নিম্নলিখিত লাইন সহ:
-মোড(কম্পাইল)।
সংকলিত কোডের চেয়ে ব্যাখ্যাকৃত কোডের সঞ্চালন ধীর। যদি অনেক
এক্সিকিউশন ব্যাখ্যা করা কোডে সঞ্চালিত হয়, এটি কম্পাইল করা সার্থক হতে পারে, এমনকি
যদিও সংকলন নিজেই একটু সময় নেবে. এটাও সম্ভব
সরবরাহ স্থানীয় পরিবর্তে সংকলন, এটি নেটিভ ব্যবহার করে স্ক্রিপ্ট কম্পাইল করবে
পতাকা, আবার এস্ক্রিপ্টের বৈশিষ্ট্যের উপর নির্ভর করে এটি পারে বা পারে না
সময় মূল্য হতে.
পূর্বে উল্লিখিত হিসাবে, একটি স্ক্রিপ্ট থাকা সম্ভব যা প্রি-কম্পাইলড রয়েছে
মরীচি কোড একটি প্রি-কম্পাইলড স্ক্রিপ্টে, স্ক্রিপ্ট হেডারের ব্যাখ্যা
সোর্স কোড সমন্বিত স্ক্রিপ্টের মতোই। তার মানে আপনি পারবেন
একটি করা মরীচি ফাইলটি শুরু করা লাইনের সাথে ফাইলটিকে প্রিপেন্ড করে এক্সিকিউটেবল #!
এবং %%! উপরোল্লিখিত. একটি precompiled স্ক্রিপ্ট, ফাংশন প্রধান/1 অবশ্যই
রফতানি করা।
আরেকটি বিকল্প হিসাবে এটি একটি সম্পূর্ণ Erlang সংরক্ষণাগার রাখা সম্ভব
লিপি. একটি আর্কাইভ স্ক্রিপ্টে, স্ক্রিপ্ট শিরোনামের ব্যাখ্যাটি হুবহু
সোর্স কোড ধারণকারী স্ক্রিপ্টের মতোই। এর মানে হল যে আপনি একটি আর্কাইভ করতে পারেন
ফাইলটি শুরু করা লাইনের সাথে ফাইলটিকে প্রিপেন্ড করে এক্সিকিউটেবল #! এবং %%!
উপরোল্লিখিত. একটি আর্কাইভ স্ক্রিপ্টে, ফাংশন প্রধান/1 রপ্তানি করতে হবে। দ্বারা
ডিফল্ট প্রধান/1 মডিউলের বেসনেমের মতো একই নামের ফাংশন
এস্ক্রিপ্ট ফাইল আহ্বান করা হবে। পতাকা সেট করে এই আচরণটি ওভাররাইড করা যেতে পারে
-এস্ক্রিপ্ট প্রধান মডিউল এমুলেটর পতাকাগুলির মধ্যে একটি হিসাবে। দ্য মডিউল একটি নাম হতে হবে
মডিউল যা একটি রপ্তানি হয়েছে প্রধান/1 ফাংশন দেখা কোড(3erl) অধিক তথ্যের জন্য
সংরক্ষণাগার এবং কোড লোডিং সম্পর্কে।
অনেক ক্ষেত্রে ইস্ক্রিপ্টে একটি শিরোনাম থাকা খুবই সুবিধাজনক, বিশেষ করে অন
ইউনিক্স প্ল্যাটফর্ম। কিন্তু হেডার আসলে ঐচ্ছিক। এর মানে আপনি সরাসরি
কোনো হেডার যোগ না করেই একটি Erlang মডিউল, বীম ফাইল বা আর্কাইভ ফাইল "চালনা" করতে পারে
তাদেরকে. কিন্তু তারপর আপনি এই মত স্ক্রিপ্ট আহ্বান করতে হবে:
$ escript factorial.erl 5
ফ্যাক্টোরিয়াল 5 = 120
$ escript factorial.beam 5
ফ্যাক্টোরিয়াল 5 = 120
$ escript factorial.zip 5
ফ্যাক্টোরিয়াল 5 = 120
escript:create(FileOrBin, বিভাগ) -> ok | {ঠিক আছে, বাইনারি()} | {ত্রুটি, মেয়াদ()}
প্রকারভেদ:
FileOrBin = ফাইলের নাম() | 'বাইনারী'
বিভাগ = [হেডার] বডি | শরীর
হেডার = shebang | {শেবাং, শেবাং} | মন্তব্য | {মন্তব্য, মন্তব্য} |
{emu_args, EmuArgs}
শেবাং = স্ট্রিং() | 'ডিফল্ট' | 'অনির্ধারিত'
মন্তব্য = স্ট্রিং() | 'ডিফল্ট' | 'অনির্ধারিত'
EmuArgs = স্ট্রিং() | 'অনির্ধারিত'
বডি = {উৎস, সোর্সকোড} | {বিম, বিমকোড} | {আর্কাইভ, জিপআর্কাইভ} |
{আর্কাইভ, ZipFiles, ZipOptions}
SourceCode = BeamCode = file:filename() | বাইনারি()
ZipArchive = zip: ফাইলের নাম() | বাইনারি()
জিপফাইল = [জিপফাইল]
ZipFile = file:filename() | {file:filename(), binary()} | {file:filename(),
বাইনারি(), file:file_info()}
জিপ অপশন = [zip:create_option()]
সার্জারির তৈরি/2 ফাংশন বিভাগগুলির একটি তালিকা থেকে একটি এস্ক্রিপ্ট তৈরি করে। বিভাগগুলো পারে
যেকোনো ক্রমে দেওয়া হবে। একটি এস্ক্রিপ্ট একটি ঐচ্ছিক দিয়ে শুরু হয় শিরোলেখ একটি দ্বারা অনুসরণ
কার্যভার শরীর. হেডার উপস্থিত থাকলে, এটি সর্বদা একটি দিয়ে শুরু হয় শেবাং,
সম্ভবত একটি দ্বারা অনুসরণ করা হয় মন্তব্য এবং emu_args. দ্য শেবাং ডিফল্ট থেকে "/usr/bin/env
লিপি". মন্তব্য ডিফল্ট "এই is an - * - erlang - * - ফাইল". সৃষ্ট
escript হয় বাইনারি হিসাবে ফেরত দেওয়া যেতে পারে বা ফাইলে লেখা যেতে পারে।
ফাংশনটি কীভাবে ব্যবহার করা যেতে পারে তার উদাহরণ হিসাবে, আমরা একটি ব্যাখ্যা করা এস্ক্রিপ্ট তৈরি করি
যা ব্যবহার করে emu_args কিছু এমুলেটর পতাকা সেট করতে। এই ক্ষেত্রে এটি নিষ্ক্রিয় ঘটবে
smp_support। আমরা নতুন সৃষ্ট থেকে বিভিন্ন বিভাগগুলিও বের করি
লিপি:
> উত্স = "%% ডেমো\nmain(_Args) ->\n io:format(erlang:system_info(smp_support))।\n"।
"%% ডেমো\nপ্রধান(_Args) ->\n io:format(erlang:system_info(smp_support)))।\n"
> io:format("~s\n", [সূত্র])।
%% ডেমো
main(_Args) ->
io:format(erlang:system_info(smp_support))।
ok
> {ok, Bin} = escript:create(binary, [shebang, comment, {emu_args, "-smp disable"}, {source, list_to_binary(Source)}])।
{ঠিক আছে,<<"#!/usr/bin/env escript\n%% এটি একটি -*- erlang -*- ফাইল\n%%!-smp নিষ্ক্রিয়"...>>}
> ফাইল:write_file("demo.escript", Bin)।
ok
> os:cmd("escript demo.escript")।
"মিথ্যা"
> escript:extract("demo.escript", [])।
{ঠিক আছে,[{শেবাং,ডিফল্ট}, {মন্তব্য,ডিফল্ট}, {emu_args,"-smp disable"},
{উৎস,<<"%% ডেমো\nmain(_Args) ->\n io:format(erlang:system_info(smp_su"...>>}]}
শিরোনাম ছাড়া একটি এস্ক্রিপ্ট এই মত তৈরি করা যেতে পারে:
> ফাইল:write_file("demo.erl", ["%% demo.erl\n-মডিউল(ডেমো)।\n-এক্সপোর্ট([main/1])।\n\n", উৎস])।
ok
> {ok, _, BeamCode} = compile:file("demo.erl", [binary, debug_info])।
{ঠিক আছে, ডেমো,
<<70,79,82,49,0,0,2,208,66,69,65,77,65,116,111,109,0,0,0,
79,0,0,0,9,4,100,...>>}
> escript:create("demo.beam", [{beam, BeamCode}])।
ok
> escript:extract("demo.beam", [])।
{ঠিক আছে,[{শেবাং,অনির্ধারিত}, {মন্তব্য,অনির্ধারিত}, {emu_args,undefined},
{বিম,<<70,79,82,49,0,0,3,68,66,69,65,77,65,116,
111,109,0,0,0,83,0,0,0,9,...>>}]}
> os:cmd("escript demo.beam")।
"সত্য"
এখানে আমরা একটি আর্কাইভ স্ক্রিপ্ট তৈরি করি যাতে এরল্যাং কোডের পাশাপাশি বিম কোড উভয়ই থাকে।
তারপরে আমরা আর্কাইভের সমস্ত ফাইলের উপর পুনরাবৃত্তি করি এবং তাদের বিষয়বস্তু এবং কিছু সংগ্রহ করি
তাদের সম্পর্কে তথ্য।
> {ok, SourceCode} = file:read_file("demo.erl")।
{ঠিক আছে,<<"%% demo.erl\n-মডিউল(ডেমো)।\n-এক্সপোর্ট([main/1])।\n\n%% ডেমো\nmain(_Arg"...>>}
> escript:create("demo.escript", [shebang, {archive, [{"demo.erl", SourceCode}, {"demo.beam", BeamCode}], []}])।
ok
> {ok, [{shebang,default}, {comment,undefined}, {emu_args,undefined}, {archive, ArchiveBin}]} = escript:extract("demo.escript", [])।
{ঠিক আছে,[{শেবাং,ডিফল্ট}, {মন্তব্য,অনির্ধারিত}, {emu_args,undefined},
{{আর্কাইভ,<<80,75,3,4,20,0,0,0,8,0,118,7,98,60,105,
152,61,93,107,0,0,0,118,0,...>>}]}
> ফাইল:write_file("demo.zip", ArchiveBin)।
ok
> zip:foldl(fun(N, I, B, A) -> [{N, I(), B()} | A] শেষ, [], "demo.zip")।
{ঠিক আছে,[{"demo.beam",
{file_info,748,Regular,read_write,
{{2010,3,2},{0,59,22}},
{{2010,3,2},{0,59,22}},
{{2010,3,2},{0,59,22}},
54,1,0,0,0,0,0},
<<70,79,82,49,0,0,2,228,66,69,65,77,65,116,111,109,0,0,0,
83,0,0,...>>},
{"demo.erl",
{file_info,118,Regular,read_write,
{{2010,3,2},{0,59,22}},
{{2010,3,2},{0,59,22}},
{{2010,3,2},{0,59,22}},
54,1,0,0,0,0,0},
<<"%% demo.erl\n-মডিউল(ডেমো)।\n-এক্সপোর্ট([main/1])।\n\n%% ডেমো\nmain(_Arg"...>>}]}
escript:extract(ফাইল, বিকল্প) -> {ঠিক আছে, বিভাগ} | {ত্রুটি, মেয়াদ()}
প্রকারভেদ:
ফাইল = ফাইলের নাম()
বিকল্প = [] | [সংকলন_উৎস]
বিভাগ = হেডার বডি
হেডার = {শেবাং, শেবাং} {মন্তব্য, মন্তব্য} {emu_args, EmuArgs}
শেবাং = স্ট্রিং() | 'ডিফল্ট' | 'অনির্ধারিত'
মন্তব্য = স্ট্রিং() | 'ডিফল্ট' | 'অনির্ধারিত'
EmuArgs = স্ট্রিং() | 'অনির্ধারিত'
বডি = {উৎস, সোর্সকোড} | {উৎস, BeamCode} | {বিম, বিমকোড} | {আর্কাইভ,
জিপআর্কাইভ}
সোর্সকোড = বিমকোড = জিপআর্কাইভ = বাইনারি()
সার্জারির নির্যাস/2 ফাংশন একটি এস্ক্রিপ্ট পার্স করে এবং এর বিভাগগুলি বের করে। এই হল
এর বিপরীত তৈরি/2.
ইস্ক্রিপ্টে বিদ্যমান না থাকলেও সমস্ত বিভাগ ফেরত দেওয়া হয়। যদি একটি বিশেষ
বিভাগে ডিফল্ট মান হিসাবে একই মান আছে, নিষ্কাশিত মান হয়
পরমাণু সেট ডিফল্ট. একটি বিভাগ অনুপস্থিত থাকলে, নিষ্কাশিত মান সেট করা হয়
পরমাণু অনির্দিষ্ট.
সার্জারির compile_source বিকল্প শুধুমাত্র ফলাফল প্রভাবিত করে যদি escript ধারণ করে উৎস
কোড সেক্ষেত্রে Erlang কোড স্বয়ংক্রিয়ভাবে সংকলিত হয় এবং {সূত্র, BeamCode}
এর পরিবর্তে ফেরত দেওয়া হয় {সূত্র, সোর্স কোড}.
> escript:create("demo.escript", [shebang, {archive, [{"demo.erl", SourceCode}, {"demo.beam", BeamCode}], []}])।
ok
> {ok, [{shebang,default}, {comment,undefined}, {emu_args,undefined}, {archive, ArchiveBin}]} = escript:extract("demo.escript", [])।
{ঠিক আছে,[{{আর্কাইভ,<<80,75,3,4,20,0,0,0,8,0,118,7,98,60,105,
152,61,93,107,0,0,0,118,0,...>>}
{emu_args,undefined}]}
escript:script_name() -> ফাইল
প্রকারভেদ:
ফাইল = ফাইলের নাম()
সার্জারির স্ক্রিপ্ট_নাম/0 ফাংশনটি কার্যকর করা ইস্ক্রিপ্টের নাম প্রদান করে। যদি
ফাংশন একটি এস্ক্রিপ্টের প্রসঙ্গের বাইরে আহ্বান করা হয়, আচরণটি অনির্ধারিত।
বিকল্প ACCEPTED BY এস্ক্রিপ্ট
-সি:
মোড অ্যাট্রিবিউটের মান নির্বিশেষে এস্ক্রিপ্ট কম্পাইল করুন।
-d:
এস্ক্রিপ্ট ডিবাগ করুন। ডিবাগার শুরু করে, মডিউলটি লোড করে প্রধান/1
ডিবাগারে ফাংশন, একটি ব্রেকপয়েন্ট সেট করে প্রধান/1 এবং আহ্বান করে প্রধান/1। যদি
মডিউলটি প্রি-কম্পাইল করা হয়েছে, এটি অবশ্যই এর সাথে স্পষ্টভাবে কম্পাইল করা উচিত ডিবাগ তথ্য বিকল্প।
-আই:
মোড অ্যাট্রিবিউটের মান নির্বিশেষে escript ব্যাখ্যা করুন।
-স:
শুধুমাত্র স্ক্রিপ্ট ফাইলের একটি সিনট্যাকটিক এবং শব্দার্থিক চেক সঞ্চালন করুন। সতর্কতা এবং ত্রুটি
(যদি থাকে) স্ট্যান্ডার্ড আউটপুটে লেখা হয়, কিন্তু স্ক্রিপ্ট চালানো হবে না। বাহির
কোন ত্রুটি না থাকলে স্থিতি 0 হবে, এবং অন্যথায় 127 হবে।
-n:
+নেটিভ পতাকা ব্যবহার করে এস্ক্রিপ্ট কম্পাইল করুন।
onworks.net পরিষেবা ব্যবহার করে অনলাইন এস্ক্রিপ্ট ব্যবহার করুন