Sh සහ bash අතර වෙනස


1343

ෂෙල් වැඩසටහන් ලිවීමේදී, අපි බොහෝ විට භාවිතා කරන්නේ /bin/shසහ /bin/bash. මම සාමාන්‍යයෙන් භාවිතා කරමි bash, නමුත් ඒවා අතර ඇති වෙනස කුමක්දැයි මම නොදනිමි.

bashසහ අතර ඇති ප්‍රධාන වෙනස shකුමක්ද?

වැඩසටහන්ගත කිරීමේදී bashසහ දැනුවත්ව සිටිය යුත්තේ කුමක් ද sh?


21
Bashisms හා Bourne shell එකක් ක්රියා අනුරූප කේත ප්රයෝජනවත් ලැයිස්තුවක් සඳහා, බලන්න mywiki.wooledge.org/Bashism
StackExchange දුකට පත් dancek

1
ඔබට sh සහ එහි විධාන භාෂාව සඳහා POSIX ප්‍රමිතිය දැකීමට අවශ්‍ය විය හැකිය : * sh * Shell Command Language
Maurício C Antunes

7
සාමාන්‍ය රීතියක් ලෙස, සියළුම ෂි ස්ක්‍රිප්ට් එහි පොසික්ස් අනුකූලතාවයට ස්තූතිවන්ත වන අතර එය සෑම බාෂ් ස්ක්‍රිප්ට් එකක්ම ෂී යටතේ ධාවනය කළ නොහැක, ඔබ දකින ප්‍රධාන වෙනස්කම් වන්නේ [[]] []] වෙනුවට [ $ () ගණිත ප්‍රකාශන වෙනුවට, සහ “එය ඉතා විශාල හා ඉතා මන්දගාමී” වැනි වෙනත් දේ කෙලින්ම බැෂ් ඩොක්ස් වලින් .. පසුගාමී ගැළපුම, මේ දිනවල බොහෝ විට එසේ නොවේ, සියල්ලට පසු (හෝ විය ...) 2014 වර්ෂය හරිද ??
osirisgothra

Answers:


1175

ෂා යනු කුමක්ද

sh(හෝ ෂෙල් විධාන භාෂාව) යනු පොසික්ස් ප්‍රමිතියෙන් විස්තර කරන ක්‍රමලේඛන භාෂාවකි . එය බොහෝ නිර්මාණයන් ඇත ( ksh88, dash, ...). bashක්‍රියාත්මක කිරීමක් ලෙස ද සැලකිය හැකිය sh(පහත බලන්න).

මන්දයත් shපිරිවිතරයක් මිස /bin/shක්‍රියාත්මක කිරීමක් නොව බොහෝ POSIX පද්ධතිවල සත්‍ය ලෙස ක්‍රියාත්මක කිරීම සඳහා වන සම්බන්ධකයක් (හෝ දෘ link සබැඳියක්) වේ.

බාෂ් යනු කුමක්ද

bashshඅනුකූල නොවන ක්‍රියාත්මක කිරීමක් ලෙස ආරම්භ විය (එය වසර කිහිපයකින් පොසික්ස් ප්‍රමිතියට පෙරාතුව වුවද), නමුත් කාලය ගෙවී යත්ම එය බොහෝ දිගු ලබා ගෙන ඇත. මෙම දිගු වලින් බොහොමයක් වලංගු POSIX shell පිටපත් වල හැසිරීම වෙනස් කළ හැකිය, එබැවින් එයම bashවලංගු POSIX shell එකක් නොවේ. ඒ වෙනුවට, එය පොසික්ස් ෂෙල් භාෂාවේ උපභාෂාවකි.

bash--posixස්විචයකට සහය දක්වයි , එමඟින් එය වඩාත් POSIX- අනුකූල වේ. එය ආයාචනා කරන්නේ නම් POSIX අනුකරණය කිරීමට ද උත්සාහ කරයි sh.

sh = බාෂ්?

දීර් G කාලයක් තිස්සේ බොහෝ GNU / Linux පද්ධති /bin/shවෙත යොමු කිරීමට /bin/bashභාවිතා කරයි. එහි ප්‍රති As ලයක් වශයෙන්, මේ දෙක අතර වෙනස නොසලකා හැරීම පාහේ ආරක්ෂිත වී තිබේ. නමුත් එය මෑතකදී වෙනස් වීමට පටන් ගත්තේය.

/bin/shපෙන්වා නොදෙන පද්ධති සඳහා සමහර ජනප්‍රිය උදාහරණ /bin/bash(සහ සමහර /bin/bashඒවා නොපවතින):

  1. Symlink නවීන ඩේබියන් හා උබුන්ටු පද්ධති, shකිරීමට dashපෙරනිමියෙන්;
  2. කාර්යබහුල පෙට්ටිය , සාමාන්‍යයෙන් ලිනක්ස් පද්ධති ඇරඹුම් කාලය තුළ ක්‍රියාත්මක වේ initramfs. එය ashෂෙල් ක්රියාත්මක කිරීම භාවිතා කරයි .
  3. BSDs සහ පොදුවේ ඕනෑම ලිනක්ස් නොවන පද්ධති. pdkshකෝර්න් කවචයෙන් පැවත එන OpenBSD භාවිතය . FreeBSD shයනු මුල් යුනික්ස් බෝර්න් කවචයෙන් පැවත එන්නකි. සොලාරිස් සතුව තමන්ගේම දෑ shඇති අතර එය දීර් P කාලයක් තිස්සේ පොසික්ස් අනුකූල නොවීය. උරුමක්කාර ව්‍යාපෘතියෙන් නොමිලේ ක්‍රියාත්මක කිරීමක් ලබා ගත හැකිය .

/bin/shඔබේ පද්ධතියේ ඇති කරුණු මොනවාදැයි ඔබ සොයා ගන්නේ කෙසේද ?

සංකූලතාව වන්නේ /bin/shඑය සංකේතාත්මක සම්බන්ධකයක් හෝ දෘ link සබැඳියක් විය හැකිය. එය සංකේතාත්මක සබැඳියක් නම්, එය විසඳීමට අතේ ගෙන යා හැකි ක්‍රමයක් වන්නේ:

% file -h /bin/sh
/bin/sh: symbolic link to bash

එය දෘ link සබැඳියක් නම්, උත්සාහ කරන්න

% find -L /bin -samefile /bin/sh
/bin/sh
/bin/bash

ඇත්ත වශයෙන්ම, -Lධජය සිම්ලින්ක් සහ දෘඩ සබැඳි යන දෙකම ආවරණය කරයි, නමුත් මෙම ක්‍රමයේ අවාසිය නම් එය අතේ ගෙන යා නොහැකි වීමයි - පොසික්ස් විකල්පයට සහය දැක්වීමට අවශ්‍ය නොවේ, නමුත් GNU සොයා ගැනීම සහ FreeBSD යන දෙකම එයට සහාය දක්වයි.find-samefile

ෂෙබාං රේඛාව

අවසානයේදී, පිටපතෙහි පළමු පේළිය ලෙස «ෂෙබාං» රේඛාව ලිවීමෙන් කුමන එකක් භාවිතා කළ යුතුද යන්න තීරණය කිරීම ඔබ සතුය.

උදා

#!/bin/sh

භාවිතා කරනු ඇත sh(සහ පෙන්වා දීමට සිදු වන ඕනෑම දෙයක්),

#!/bin/bash

/bin/bashඑය තිබේ නම් භාවිතා කරනු ඇත (සහ එය නොමැති නම් දෝෂ පණිවිඩයක් සමඟ අසමත් වේ). ඇත්ත වශයෙන්ම, ඔබට තවත් ක්‍රියාත්මක කිරීමක් නියම කළ හැකිය, උදා

#!/bin/dash

භාවිතා කළ යුතු එක

මගේම ස්ක්‍රිප්ට් සඳහා, මම shපහත සඳහන් හේතු සඳහා කැමැත්තෙමි :

  • එය ප්‍රමිතිගත කර ඇත
  • එය වඩාත් සරල හා ඉගෙනීමට පහසුය
  • එය POSIX පද්ධති හරහා අතේ ගෙන යා හැකි ය - ඒවා නොතිබුණත් ඒවා bashතිබිය යුතුයsh

භාවිතා කිරීමේ වාසි bashද ඇත. එහි විශේෂාංග මඟින් ක්‍රමලේඛනය වඩාත් පහසු සහ අනෙකුත් නවීන ක්‍රමලේඛන භාෂාවල වැඩසටහන්කරණයට සමාන කරයි. විෂය පථයට අයත් දේශීය විචල්‍යයන් සහ අරා වැනි දෑ මෙයට ඇතුළත් ය. සරල shයනු ඉතා අවම ක්‍රමලේඛන භාෂාවකි.


1
bashසින්ටැක්ස් දෝෂයකදී ඔබ වඩාත් ප්‍රයෝජනවත් දෝෂ පණිවිඩ පෙන්වන ආකාරයෙන් ස්ක්‍රිප්ට් එකක් ධාවනය කරන්නේ නම් . ඔබට හුදෙක් බාෂ් භාවිතා කිරීමෙන් කාලය ඉතිරි කර ගත හැකිය.
PHPst

වෙන්නේ මොනවාද %ඔබේ විධාන රේඛාවන් ආරම්භයේදී අදහස්?
ජෝශප් හැරියට්

Ose ජොසෙෆ් හැරියට් එය ක්ෂණික ය: ඔබේ විධානය අනුගමනය කරන කවචය විසින්ම මුද්‍රණය කරන ලද අක්‍ෂරයකි. සමහර කවච $වෙනුවට %හෝ #මූල කවචය භාවිතා කරයි.
රෝමන් චෙප්ලියාකා

Oman රෝමන් චෙප්ලියාකා කුමන ෂෙල් වෙඩි? මම මෙතෙක් දැක ඇති $අතර #...
ජෝශප් හැරියට්

Oman රෝමන්චෙප්ලියාකා බාෂ් වලට shපෙර සිටම පැවතුන බව මට විශ්වාසයි (එය නැවත වරක් කවචය නියෝජනය කරයි). නමුත් එය ඉතා ප්‍රාථමික වූ අතර ESCඅක්‍ෂර වැනි පර්යන්ත සිදුවීම් වලට ප්‍රතිචාර නොදැක්වීය . පසුව kshපැමිණියේ (බාෂ් කිරීමට පෙරද), පසුව බාෂ් ආරම්භ කළේ වඩා හොඳ කවචයක් පිළිබඳ අදහසට ඇලුම් කළ නමුත් ksh ට වෛර කළ අයයි. :-)
raminr

149

sh: http://man.cx/sh
bash : http://man.cx/bash

TL; DR : bashයනු shවඩාත් අලංකාර වාක්‍ය ඛණ්ඩයක් සහ වඩා ක්‍රියාකාරීත්වයක් සහිත සුපිරි කට්ටලයකි . නවීන වේදිකාවල සර්වසම්පූර්ණ බැවින් සෑම අවස්ථාවකම පාහේ බාෂ් ෂෙබාං රේඛාවක් භාවිතා කිරීම ආරක්ෂිත වේ.

සැ.යු: සමහර පරිසරවල, sh වේ bash . පරීක්ෂා කරන්න sh --version.


32
බැෂ් sh ලෙස ආයාචනා කරන්නේ නම්, එය ටිකක් වෙනස් ලෙස හැසිරේ. ශුද්ධාසනයේ gnu.org/software/bash/manual/bashref.html#Bash-Startup-Files ( "නම sh සමග උන්වහන්සේගේ") සහ gnu.org/software/bash/manual/bashref.html#Bash-POSIX-Mode . උදාහරණයක් ලෙස, ක්‍රියාවලි ආදේශකයක් නොමැත.
ග්ලෙන් ජැක්මන්

11
Bash යනු sh හි සුපර්සෙට් එකක් වන අතර FreeBSD වැනි සමහර මෙහෙයුම් පද්ධති පෙරනිමියෙන් බාෂ් ස්ථාපනය කර නොමැති බැවින්, sh හි ස්ක්‍රිප්ටින් මඟින් වැඩි අතේ ගෙන යා හැකි හැකියාවක් ඇත.
user674062

1
නිශ්චිත ස්ක්‍රිප්ටයක් සඳහා පොසික්ස් කවචයක් ලබා ගැනීම සඳහා අතේ ගෙන යා හැකි ස්ක්‍රිප්ට් ක්‍රමයක් නොමැති බැවින්, අතේ ගෙන යා හැකි ස්ක්‍රිප්ට වලට බෝර්න් ෂෙල් විශේෂාංග වලට වඩා උපකල්පනය කළ නොහැක.
schily

87

මෙම ප්‍රශ්නය නිතරම කැනොනිකල් ලෙස නම් කර ඇති අතර එය භාවිතා කිරීමට උත්සාහ කරන shසහ එය එසේ නොවීම ගැන පුදුමයට පත් bashවේ. පොදු වැරදි වැටහීම් සහ අන්තරායන් ඉක්මණින් ඉවත් කිරීම මෙන්න.

පළමුව, ඔබ අපේක්ෂා කළ යුතු දේ තේරුම් ගත යුතුය.

  • ඔබ සමඟ ඔබේ කේත රචනය ක්රියාත්මක නම් sh scriptname, හෝ එය ක්රියාත්මක scriptnameකිරීමට හා #!/bin/shතුළ shebang මාර්ගය, ඔබ POSIX බලාපොරොත්තු විය යුතු shහැසිරීම.
  • ඔබ ඔබේ ස්ක්‍රිප්ට් එක සමඟ ධාවනය කරන්නේ නම් bash scriptnameහෝ එය සමඟ ධාවනය scriptnameකර #!/bin/bash(හෝ දේශීය සමාන) ෂෙබාං රේඛාවේ තිබේ නම්, ඔබ Bash හැසිරීම අපේක්ෂා කළ යුතුය.

නිවැරදි ෂෙබාං එකක් තිබීම සහ ස්ක්‍රිප්ට් නම පමණක් ටයිප් කිරීමෙන් ස්ක්‍රිප්ට් ධාවනය කිරීම (සමහරවිට සාපේක්ෂ හෝ සම්පූර්ණ මාර්ගයකින් ) සාමාන්‍යයෙන් වඩාත් සුදුසු විසඳුම වේ. නිවැරදි ෂෙබාං වලට අමතරව, මේ සඳහා ස්ක්‍රිප්ට් ගොනුව ක්‍රියාත්මක කිරීමේ අවසරය ( chmod a+x scriptname) අවශ්‍ය වේ.

ඉතින්, ඒවා ඇත්ත වශයෙන්ම වෙනස් වන්නේ කෙසේද?

Bash Reference අත්පොතෙහි වෙනස්කම් ගණනය කිරීමට උත්සාහ කරන අංශයක් ඇති නමුත් සමහර පොදු ව්‍යාකූල ප්‍රභවයන් ඇතුළත් වේ

  • [[තුළ ලබා ගත නොහැක sh( [එය වඩාත් අවුල් සහගත හා සීමිත පමණි).
  • sh අරා නොමැත.
  • සමහර බෑෂ් වගේ ප්රධාන වචන local, source, function, shopt, let, declare, සහ selectකිරීමට අතේ ගෙන යා හැකි නොවේ sh. (සමහර shක්‍රියාත්මක කිරීම් උදා local.)
  • ත්‍රි-තර්ක for((i=0;i<=3;i++))ලූපය, +=වර්ධක පැවරුම වැනි බොහෝ සී-ශෛලීය සින්ටැක්ස් දිගුවන් බාෂ් සතුව ඇත . මෙම $'string\nwith\tC\aescapes'අංගය පොසික්ස් සඳහා තාවකාලිකව පිළිගෙන ඇත (එයින් අදහස් වන්නේ එය දැන් බාෂ් හි ක්‍රියාත්මක වන නමුත් shවර්තමාන ඒවාට පමණක් අනුගත වන පද්ධති සඳහා තවමත් සහාය නොදක්වයි POSIX පිරිවිතර, සහ සමහර විට ඉදිරි කාලය සඳහා නොවනු ඇත).
  • බෑෂ් ආධාරක <<<'here strings'.
  • Bash සතුව *.{png,jpg}සහ {0..12}වරහන් පුළුල් කිරීම.
  • ~යොමු දක්වන්නේ $HOMEබාෂ් හි පමණි (සහ වඩාත් සාමාන්‍යයෙන් ~usernameනිවාස නාමාවලිය වෙත username).මෙය POSIX හි ඇත, නමුත් සමහර පෙර-POSIX /bin/shක්‍රියාත්මක කිරීම් වලින් එය මඟ හැරී ඇත.
  • බෑෂ් ක්රියාවලිය ආදේශන ඇත <(cmd)හා >(cmd).
  • බෑෂ් වගේ Csh-ආකාරයේ පහසු හරවා යැවීමේ යොමුවීම් ඇත &|සඳහා 2>&1 |සහ &>සඳහා> ... 2>&1
  • බාෂ් <>නැවත හරවා යැවීම සමඟ කොප්‍රොසෙස් සඳහා සහය දක්වයි .
  • බෑෂ් වැනි පුළුල් සම්මත නොවන පරාමිතිය පුළුල් කිරීම් පොහොසත් කට්ටලයක් ලක්ෂණ ${substring:1:2}, ${variable/pattern/replacement}, නඩුව පරිවර්තනය, ආදිය
  • ෂෙල් අංක ගණිතය සඳහා බාෂ් සැලකිය යුතු ලෙස පහසුකම් පුළුල් කර ඇත (තවමත් පාවෙන ලක්ෂ්‍ය ආධාරකයක් නොමැත). යල්පැනගිය උරුම $[expression]සින්ටැක්ස් එකක් ඇත, කෙසේ වෙතත් එය POSIX අංක ගණිත $((expression))සින්ටැක්ස් සමඟ ප්‍රතිස්ථාපනය කළ යුතුය . (සමහර පැරණි-පොසික්ස් shක්‍රියාත්මක කිරීම් ඊට සහාය නොදක්වයි.)
  • මැජික් විචල්ය කැමති $RANDOM, $SECONDS, $PIPESTATUS[@]හා $FUNCNAMEබෑෂ් දිගු වේ.
  • අතේ ගෙන යා නොහැකි export variable=valueහා සමාන සින්ටැක්ටික් වෙනස්කම් [ "x" == "y" ]( export variableවිචල්ය පැවරුම් වලින් වෙන් විය යුතුය, සහ අතේ ගෙන යා හැකි නූල් සංසන්දනය [ ... ]තනි සමාන ලකුණක් භාවිතා කරයි).
  • විකල්ප හැසිරීම් සක්‍රීය කිරීමට හෝ අක්‍රීය කිරීමට සහ කවචයේ අභ්‍යන්තර තත්වය හෙළි කිරීමට බොහෝ, බොහෝ බාෂ්-පමණක් දිගු.
  • ස්ක්‍රිප්ට් හැසිරීමට බලපාන්නේ නැති අන්තර්ක්‍රියාකාරී භාවිතය සඳහා බොහෝ පහසු ලක්ෂණ.

මතක තබා ගන්න, මෙය සංක්ෂිප්ත ලැයිස්තුවකි. සම්පුර්ණ හැඳි සඳහා යොමු අත්පොත සහ http://mywiki.wooledge.org/ බොහෝ හොඳ ක්‍රියාමාර්ග සඳහා බැෂිස්වාදය බලන්න; සහ / හෝ http://shellcheck.net/ උත්සාහ කරන්න, එය බොහෝ බාෂ්-පමණක් විශේෂාංග සඳහා අනතුරු අඟවයි.

පොදු දෝෂයක් නම් #!/bin/bashෂෙබාං රේඛාවක් තිබීමයි, නමුත් කෙසේ වෙතත් sh scriptnameඇත්ත වශයෙන්ම ස්ක්‍රිප්ට් ධාවනය කිරීමට භාවිතා කිරීම. මෙය මූලික වශයෙන් ඕනෑම බාෂ්-පමණක් ක්‍රියාකාරීත්වය අක්‍රීය කරයි, එබැවින් ඔබට අරා භාවිතා කිරීමට උත්සාහ කිරීම සඳහා සින්ටැක්ස් දෝෂ උදා වේ. (ෂෙබාං රේඛාව කෘතිමව අදහස් දැක්වීමකි, එබැවින් එය මෙම තත්වය තුළ නොසලකා හරිනු ලැබේ.)

අවාසනාවකට මෙන්, ඔබ මෙම ඉදිකිරීම් භාවිතා කරන විට එය භාවිතා කිරීමට උත්සාහ කරන විට Bash අනතුරු අඟවන්නේ නැත sh. එය සම්පූර්ණයෙන්ම අක්රීය කරන්නේ සියලු බෑෂ් පමණක් ක්රියාකාරිත්වය, එක්කෝ, ඒ නිසා එය යොදාගැනීම මගින් බෑෂ් ධාවනය shඔබේ තිර රචනය සඳහා නිසි අතේ ගෙන යා හැකි වන්නේ නම්, පරීක්ෂා කිරීමට හොඳ ක්රමයක් නොවේ ash/ dash/ POSIX shහෝ වැනි විචල්යතා සතර කෝරළයටsh


2
මූලික වශයෙන්, TL; DR ersion යනු And ගේ පිළිතුරයි .
ත්‍රිත්ව

4
shellcheck.net මට අවශ්‍ය සියල්ලම විය. බොහෝම ස්තූතියි.
ජොෂ් හබ්දාස්

FWIW, export variable=value: POSIX ඇනැවෙයි pubs.opengroup.org/onlinepubs/009695399/utilities/export.html . සමහර විට එය සමහර පුරාණ ෂෙල් වෙඩි වල නොතිබිය හැකි නමුත් එය නියත වශයෙන්ම බාෂිවාදයක් නොවේ.
රෝමානු චෙප්ලියාකා

56

ෂෙල් යනු මෙහෙයුම් පද්ධතියක සේවාවන් වෙත ප්‍රවේශ වීම සඳහා පරිශීලකයෙකු සහ මෙහෙයුම් පද්ධතියක් අතර අතුරු මුහුණතකි. එය GUI හෝ CLI (විධාන රේඛා අතුරුමුහුණත) විය හැකිය.

sh (Bourne sh ell) යනු යුනික්ස් / යුනික්ස් වැනි මෙහෙයුම් පද්ධති සඳහා ෂෙල් විධාන රේඛා පරිවර්තකයෙකි. එය බිල්ට් විධාන කිහිපයක් සපයයි. ස්ක්‍රිප්ටින් භාෂාවෙන් අපි අර්ථ නිරූපකයා ලෙස දක්වමු #!/bin/sh. එය බාෂ් (නිදහස් / විවෘත), කාෂ් (නොමිලේ නොවේ) වැනි වෙනත් ෂෙල් වෙඩි වලින් වඩාත් පුළුල් ලෙස සහාය විය.

Bash ( B ourne a gain s hell ) යනු බෝර්න් කවචය වෙනුවට ෂෙල් ආදේශ කිරීමකි. Bash යනු sh හි සුපර්සෙට් ය. Bash සහාය sh. POSIX යනු POSIX- අනුකූල පද්ධති ක්‍රියාත්මක විය යුතු ආකාරය නිර්වචනය කරන ප්‍රමිති සමූහයකි. Bash ඇත්ත වශයෙන්ම POSIX අනුකූල කවචයක් නොවේ. ස්ක්‍රිප්ටින් භාෂාවක අපි පරිවර්තකයා ලෙස දක්වමු #!/bin/bash.

ප්‍රතිසම:

  • ෂෙල් යනු අතුරු මුහුණතක් හෝ පිරිවිතර හෝ API වැනි ය.
  • sh යනු ෂෙල් අතුරුමුහුණත ක්‍රියාත්මක කරන පන්තියකි.
  • Bash යනු sh හි උප පංතියකි.

රූප විස්තරය මෙහි ඇතුළත් කරන්න


4
මට ඒක තේරෙන්නේ නැහැ. "Bash යනු sh හි සුපර්සෙට්" සහ "Bash යනු sh හි උප පංතියකි" යන දෙකම ඔබ සඳහන් කර ඇත, ඒවා පරස්පර ප්‍රකාශ නොවේද? කරුණාකර පැහැදිලි කර ගත හැකිද?
කීර්තන ප්‍රභාකරන්

12
මම හිතන්නේ මෙය Bash වෙතින් උරුම වූවක් යැයි කීමට උත්සාහ කරයි sh(එබැවින් එය OOP අර්ථයෙන් "උප පංතියක්") වන අතර එය දිගු කරයි (එබැවින් ක්‍රියාකාරීත්වයේ සුපිරි කට්ටලයක් ඇත).
ත්‍රිත්ව

55

UNIX.COM වෙතින් පළ කරන්න

ෂෙල් ලක්ෂණ

පහත දැක්වෙන වගුවේ ඔබ එක් කවචයක් තවත් කටුවක් තෝරා ගැනීමට පෙළඹෙනු ඇතැයි මා සිතන බොහෝ විශේෂාංග ලැයිස්තුගත කරයි. එය නිශ්චිත ලැයිස්තුවක් වීමට අදහස් නොකරන අතර හැකි සෑම කවචයක් සඳහාම හැකි සෑම අංගයක්ම ඇතුළත් නොවේ. විශේෂාංගයක් සලකනු ලබන්නේ මෙහෙයුම් පද්ධතිය සමඟ එන අනුවාදයේ නම් හෝ එය සම්මත බෙදාහැරීමෙන් කෙලින්ම සම්පාදනය කළ හැකි නම් පමණි. විශේෂයෙන් පහත දක්වා ඇති සී කවචය SUNOS 4 හි ලබා ගත හැකිය. *, වෙළෙන්දන් සැලකිය යුතු සංඛ්‍යාවක් දැන් tcsh හෝ ඔවුන්ගේම වැඩි දියුණු කරන ලද C shell එකක් නැව්ගත කරති (ඔවුන් සෑම විටම tcsh නැව්ගත කරන බව පැහැදිලි නොකරයි.

කේතය:

                                     sh   csh  ksh  bash tcsh zsh  rc   es
Job control                          N    Y    Y    Y    Y    Y    N    N
Aliases                              N    Y    Y    Y    Y    Y    N    N
Shell functions                      Y(1) N    Y    Y    N    Y    Y    Y
"Sensible" Input/Output redirection  Y    N    Y    Y    N    Y    Y    Y
Directory stack                      N    Y    Y    Y    Y    Y    F    F
Command history                      N    Y    Y    Y    Y    Y    L    L
Command line editing                 N    N    Y    Y    Y    Y    L    L
Vi Command line editing              N    N    Y    Y    Y(3) Y    L    L
Emacs Command line editing           N    N    Y    Y    Y    Y    L    L
Rebindable Command line editing      N    N    N    Y    Y    Y    L    L
User name look up                    N    Y    Y    Y    Y    Y    L    L
Login/Logout watching                N    N    N    N    Y    Y    F    F
Filename completion                  N    Y(1) Y    Y    Y    Y    L    L
Username completion                  N    Y(2) Y    Y    Y    Y    L    L
Hostname completion                  N    Y(2) Y    Y    Y    Y    L    L
History completion                   N    N    N    Y    Y    Y    L    L
Fully programmable Completion        N    N    N    N    Y    Y    N    N
Mh Mailbox completion                N    N    N    N(4) N(6) N(6) N    N
Co Processes                         N    N    Y    N    N    Y    N    N
Builtin artithmetic evaluation       N    Y    Y    Y    Y    Y    N    N
Can follow symbolic links invisibly  N    N    Y    Y    Y    Y    N    N
Periodic command execution           N    N    N    N    Y    Y    N    N
Custom Prompt (easily)               N    N    Y    Y    Y    Y    Y    Y
Sun Keyboard Hack                    N    N    N    N    N    Y    N    N
Spelling Correction                  N    N    N    N    Y    Y    N    N
Process Substitution                 N    N    N    Y(2) N    Y    Y    Y
Underlying Syntax                    sh   csh  sh   sh   csh  sh   rc   rc
Freely Available                     N    N    N(5) Y    Y    Y    Y    Y
Checks Mailbox                       N    Y    Y    Y    Y    Y    F    F
Tty Sanity Checking                  N    N    N    N    Y    Y    N    N
Can cope with large argument lists   Y    N    Y    Y    Y    Y    Y    Y
Has non-interactive startup file     N    Y    Y(7) Y(7) Y    Y    N    N
Has non-login startup file           N    Y    Y(7) Y    Y    Y    N    N
Can avoid user startup files         N    Y    N    Y    N    Y    Y    Y
Can specify startup file             N    N    Y    Y    N    N    N    N
Low level command redefinition       N    N    N    N    N    N    N    Y
Has anonymous functions              N    N    N    N    N    N    Y    Y
List Variables                       N    Y    Y    N    Y    Y    Y    Y
Full signal trap handling            Y    N    Y    Y    N    Y    Y    Y
File no clobber ability              N    Y    Y    Y    Y    Y    N    F
Local variables                      N    N    Y    Y    N    Y    Y    Y
Lexically scoped variables           N    N    N    N    N    N    N    Y
Exceptions                           N    N    N    N    N    N    N    Y

ඉහත වගුවට යතුර.

Y විශේෂාංගය මෙම කවචය භාවිතයෙන් කළ හැකිය.

N විශේෂාංගය කවචයේ නොමැත.

F විශේෂාංගය කළ හැක්කේ ෂෙල් වෙඩි ක්‍රියාකාරී යාන්ත්‍රණය භාවිතා කිරීමෙන් පමණි.

L මෙම විශේෂාංගය සක්‍රීය කිරීම සඳහා කියවීම් රේඛා පුස්තකාලය කවචයට සම්බන්ධ කළ යුතුය.

ඉහත වගුවට සටහන්

1. This feature was not in the original version, but has since become
   almost standard.
2. This feature is fairly new and so is often not found on many
   versions of the shell, it is gradually making its way into
   standard distribution.
3. The Vi emulation of this shell is thought by many to be
   incomplete.
4. This feature is not standard but unofficial patches exist to
   perform this.
5. A version called 'pdksh' is freely available, but does not have
   the full functionality of the AT&T version.
6. This can be done via the shells programmable completion mechanism.
7. Only by specifying a file via the ENV environment variable.

1988 ට පෙර බෝර්න් ෂෙල් හි විශේෂාංග සහ ksh වෙතින් ඇති විශේෂාංග සංසන්දනය කිරීමට උත්සාහ කරන බැවින් ඔබේ වගුව මට ප්‍රයෝජනවත් නොවේ. ඔබ 1988 සඳහා සැබවින්ම වගුවක් සාදන්නේ නම්, එම වගුවෙන් අනෙක් ෂෙල් වෙඩි බොහොමයක් ඉවත් කිරීමට ඔබට අවශ්‍ය වනු ඇත - බාෂ් ඇතුළුව , sh සහ rc. ඔබේ වගුව සඳහා වටිනාකම් ලබාගත්තේ කොහෙන්දැයි ඔබට පැහැදිලි කළ හැකිද?
schily

1
මම ඉඟි කිහිපයක් දෙන්නම්: රැකියා පාලනය 1989 දී බෝර්න් ෂෙල් එකට එකතු කරන ලද අතර 2005 දී බෝර්න් ෂෙල් විවෘත මෘදුකාංගයක් බවට පත් කරන ලදී. කෝර්න් ෂෙල් එකේ අවම වශයෙන් 1988 සිට ක්‍රියාවලි ආදේශකයක් ඇති අතර එය 1997 සිට විවෘත මූලාශ්‍රය වේ. නිවැරදි නොවේ, V ENV කියවනු ලබන්නේ / ක්‍රියාත්මක කරන්නේ අන්තර්ක්‍රියාකාරී කවච සඳහා පමණි.
schily


ch ඕනෑම තැනක එය වැරදියි කියා ඔබට හැඟේ නම්, කරුණාකර එය නිසි ලෙස සංස්කරණය කිරීමට නිදහස් වන්න.
ශ්‍රිනිවී

8
ඉතා සූක්ෂම ලෙස නිරාවරණය වූ කරුණු මත පදනම්ව, මෙම පිළිතුර අත්‍යවශ්‍යයෙන්ම වංචනික බැවින් එය ඉවත් කිරීම වඩා හොඳ බව පෙනේ. OP ඔහු අලවා ඇති තොරතුරු සැබවින්ම විමසා බැලුවේ නැත.
danno

25

පර්යන්තය

  • කවුළුවක් ඉහළට ඔසවන වැඩසටහන (ය)
  • xterm, rxvt, konsole, kvt, gnome-terminal, nxterm සහ eterm.

ෂෙල් කරන්න

  • යනු පර්යන්තය තුළ ක්‍රියාත්මක වන වැඩසටහනකි
  • ෂෙල් යනු විධාන පරිවර්තකයෙකු මෙන්ම ක්‍රමලේඛන භාෂාවකි
  • ෂෙල් යනු විධාන ක්‍රියාත්මක කරන සාර්ව සකසනයකි.
  • මැක්‍රෝ ප්‍රොසෙසරය යනු විශාල ප්‍රකාශන නිර්මාණය කිරීම සඳහා පෙළ සහ සංකේත පුළුල් කරන ක්‍රියාකාරීත්වයයි.

SH එදිරිව. බාෂ්

එස්.එච්

  • (ෂෙල්)
  • විශේෂිත කවචයකි
  • විධාන පරිවර්තකයක් සහ ක්‍රමලේඛන භාෂාවක්
  • BASH හි පූර්වගාමියා

බාෂ්

  • (බෝර්න්-නැවතත් ෂෙල්)
  • විශේෂිත කවචයකි
  • විධාන පරිවර්තකයක් සහ ක්‍රමලේඛන භාෂාවක්
  • Sh ක්‍රියාකාරීත්වය සහ තවත් බොහෝ දේ ඇත
  • එස්.එච්
  • BASH යනු පෙරනිමි SHELL ය

යොමු ද්‍රව්‍ය:

ෙෂල් gnu.org:

එහි පාමුල, කවචය යනු විධාන ක්‍රියාත්මක කරන සාර්ව සකසනයකි . පදය සාර්ව සකසනය පෙළ සහ සංකේත විශාල ප්රකාශන නිර්මාණය කිරීමට පුළුල් කරනු ලබන ක්රියාකාරිත්වය බවයි.

යුනික්ස් කවචය යනු විධාන පරිවර්තකය සහ ක්‍රමලේඛන භාෂාවයි. විධාන පරිවර්තකයෙකු ලෙස, කවචය පරිශීලක අතුරුමුහුණත පොහොසත් GNU උපයෝගිතා සමූහයට සපයයි. ක්‍රමලේඛන භාෂා විශේෂාංග මඟින් මෙම උපයෝගිතා ඒකාබද්ධ කිරීමට ඉඩ ලබා දේ. විධාන අඩංගු ලිපිගොනු නිර්මාණය කළ හැකි අතර ඒවා විධාන බවට පත්වේ. මෙම නව විධානයන්ට / bin වැනි නාමාවලිවල පද්ධති විධාන වලට සමාන තත්වයක් ඇති අතර, පරිශීලකයින්ට හෝ කණ්ඩායම්වලට ඔවුන්ගේ පොදු කාර්යයන් ස්වයංක්‍රීය කිරීමට අභිරුචි පරිසරයන් ස්ථාපිත කිරීමට ඉඩ දෙයි.

ෂෙල් වෙඩි අන්තර්ක්‍රියාකාරී හෝ අන්තර්ක්‍රියාකාරී නොවන ලෙස භාවිතා කළ හැකිය. අන්තර්ක්‍රියාකාරී ප්‍රකාරයේදී, යතුරුපුවරුවෙන් ටයිප් කළ ආදානය ඔවුන් පිළිගනී. අන්තර්ක්‍රියාකාරී නොවන විට, ෂෙල් වෙඩි ගොනුවකින් කියවන විධාන ක්‍රියාත්මක කරයි.

කවචයක් මඟින් GNU විධානයන් සමමුහුර්තව හා අසමමුහුර්තව ක්‍රියාත්මක කිරීමට ඉඩ දෙයි. වැඩි ආදානයක් භාර ගැනීමට පෙර සමමුහුර්ත විධානයන් සම්පූර්ණ වන තෙක් කවචය බලා සිටී; අසමමුහුර්ත විධාන අතිරේක විධාන කියවා ක්‍රියාත්මක කරන අතරතුර කවචයට සමාන්තරව ක්‍රියාත්මක වේ. යළි-යොමුකිරීමේ ඉදිකිරීම් මඟින් එම විධානයන්හි ආදානය සහ ප්‍රතිදානය මනාව පාලනය කිරීමට ඉඩ ලබා දේ. තවද, විධාන පරිසරයේ අන්තර්ගතය පාලනය කිරීමට කවචය ඉඩ දෙයි.

වෙනම උපයෝගීතා හරහා ලබා ගැනීමට අපහසු හෝ අපහසුතාවයට පත්වන ක්‍රියාකාරීත්වය ක්‍රියාත්මක කරන කුඩා බිල්ට් විධාන (බිල්ඩින්) ෂෙල් වෙඩි සපයයි . නිදසුනක් ලෙස, සීඩී, කැඩීම, ඉදිරියට යාම සහ ක්‍රියාත්මක කිරීම කවචයෙන් පිටත ක්‍රියාත්මක කළ නොහැක . ඉතිහාසය, getopts, kill, හෝ pwd buildins යනාදිය වෙනම උපයෝගිතා වලින් ක්‍රියාත්මක කළ හැකි නමුත් ඒවා බිල්ඩින් විධාන ලෙස භාවිතා කිරීමට වඩාත් පහසු වේ. සියලුම ෂෙල් බිල්ඩින් පසුකාලීන කොටස් වල විස්තර කර ඇත.

විධාන ක්‍රියාත්මක කිරීම අත්‍යවශ්‍ය වන අතර, ෂෙල් වෙඩි වල බලය (සහ සංකීර්ණතාව) බොහෝමයක් සිදුවන්නේ ඒවායේ කාවැද්දූ ක්‍රමලේඛන භාෂාවන් නිසාය. ඕනෑම ඉහළ මට්ටමේ භාෂාවක් මෙන්, කවචය විචල්‍යයන්, ප්‍රවාහ පාලන ඉදිකිරීම්, උපුටා දැක්වීම් සහ කාර්යයන් සපයයි.

ක්‍රමලේඛන භාෂාව වැඩි දියුණු කරනවාට වඩා අන්තර්ක්‍රියාකාරී භාවිතය සඳහා විශේෂයෙන් සකසා ඇති විශේෂාංග ෂෙල්ස් මඟින් ඉදිරිපත් කරයි. මෙම අන්තර්ක්‍රියාකාරී අංග අතරට රැකියා පාලනය, විධාන රේඛා සංස්කරණය, විධාන ඉතිහාසය සහ අන්වර්ථයන් ඇතුළත් වේ. මෙම එක් එක් අංග මෙම අත්පොතෙහි විස්තර කර ඇත.

BASH gnu.org:

Bash යනු GNU මෙහෙයුම් පද්ධතිය සඳහා වන කවචය හෝ විධාන භාෂා පරිවර්තකයයි. වර්තමාන යුනික්ස් ෂෙල් ෂා හි සෘජු මුතුන් මිත්තන්ගේ කතුවරයා වන ස්ටීවන් බෝර්න් හට යුනික්ස් හි හත්වන සංස්කරණය බෙල් ලැබ්ස් පර්යේෂණ අනුවාදයේ පළ වූ 'බෝර්න්-අයේන් ෂෙල්' හි අක්ෂර මාලාවකි.

Bash බොහෝ දුරට sh සමඟ අනුකූල වන අතර Korn shell ksh සහ C shell csh වෙතින් ප්‍රයෝජනවත් අංග ඇතුළත් වේ. IEEE POSIX පිරිවිතරයේ (IEEE Standard 1003.1) IEEE POSIX Shell and Tools කොටස අනුකූලව ක්‍රියාත්මක කිරීම මෙහි අරමුණයි. එය අන්තර්ක්‍රියාකාරී සහ ක්‍රමලේඛන භාවිතය සඳහා sh ට වඩා ක්‍රියාකාරී වැඩිදියුණු කිරීම් ලබා දෙයි.

GNU මෙහෙයුම් පද්ධතිය csh අනුවාදයක් ඇතුළුව වෙනත් ෂෙල් වෙඩි සපයන අතර, Bash යනු පෙරනිමි කවචයයි . අනෙකුත් GNU මෘදුකාංග මෙන්, Bash තරමක් අතේ ගෙන යා හැකි ය. එය දැනට යුනික්ස් හි සෑම අනුවාදයකම සහ තවත් මෙහෙයුම් පද්ධති කිහිපයකම ක්‍රියාත්මක වේ - එම්එස්-ඩොස්, ඕඑස් / 2 සහ වින්ඩෝස් වේදිකා සඳහා ස්වාධීනව සහාය දක්වන වරායන් පවතී.


14

වෙනත් පිළිතුරු සාමාන්‍යයෙන් පෙන්වා දුන්නේ බාෂ් සහ පොසික්ස් ෂෙල් ප්‍රමිතිය අතර වෙනසයි. කෙසේ වෙතත්, අතේ ගෙන යා හැකි ෂෙල් ස්ක්‍රිප්ට් ලිවීමේදී සහ බාෂ් සින්ටැක්ස් සඳහා භාවිතා කරන විට, සාමාන්‍ය බාෂිස්ම් සහ ඊට අනුරූප පිරිසිදු පොසික්ස් විසඳුම් ලැයිස්තුවක් ඉතා පහසුය. උබුන්ටු පෙරනිමි පද්ධති කවචයක් ලෙස බාෂ් සිට ඩෑෂ් වෙත මාරු වූ විට එවැනි ලැයිස්තුවක් සම්පාදනය කර ඇති අතර මෙහි සොයාගත හැකිය: https://wiki.ubuntu.com/DashAsBinSh

එපමනක් නොව, නමින් වැදගත් මෙවලමක් නැත checkbashisms ඔබ ඔබේ තිර රචනය අතේ ගෙන යා හැකි බව තහවුරු කිරීම සඳහා අවශ්ය වන විට ඔබේ තිර රචනය තුළ චෙක්පත් bashisms හා ප්රයෝජනවත් එන.


මෙය මූලික වශයෙන් මගේ පිළිතුර මේ වන විට සැබවින්ම තම්බා ඇත. +1
ත්‍රිත්ව

9

ඒවා බොහෝ දුරට සමාන නමුත් bashවැඩි විශේෂාංග ඇත - sh(වැඩි හෝ අඩු) පැරණි උප කුලකයකි bash.

shබොහෝ විට අදහස් කරන්නේ මුල් Bourne shellපිටපතයි bash( Bourne *again* shell), එය 1977 දී නිර්මාණය කරන ලද්දකි. එහෙත්, ප්‍රායෝගිකව එය 1992 සිට පොසික්ස් ප්‍රමිතියට අනුකූලව ඉහළ හරස් අනුකූල ෂෙල් එකක් ලෙස සිතීම වඩා හොඳ විය හැකිය.

කවචයෙන් ආරම්භ වන #!/bin/shහෝ භාවිතා කරන ස්ක්‍රිප්ට් shසාමාන්‍යයෙන් එසේ කරන්නේ පසුගාමී අනුකූලතාව සඳහා ය. ඕනෑම යුනික්ස් / ලිනක්ස් මෙහෙයුම් පද්ධතියකට shකවචයක් ඇත. උබුන්ටු මත shබොහෝ විට ආයාචනා කරන dashඅතර මැකෝස් හි එය විශේෂ POSIX අනුවාදයකි bash. සම්මත-අනුකූල හැසිරීම්, වේගය හෝ පසුගාමී අනුකූලතාව සඳහා මෙම කවච වඩාත් සුදුසු වේ.

bashමුල් පිටපතට වඩා අලුත් ය sh, තවත් විශේෂාංග එකතු කරයි, සහ පසුපසට අනුකූල වීමට උත්සාහ කරයි sh. න්‍යාය අනුව, shවැඩසටහන් ක්‍රියාත්මක විය යුතුය bash. bashසෑම ලිනක්ස් / යුනික්ස් යන්ත්‍රයකම පාහේ ලබා ගත හැකි අතර සාමාන්‍යයෙන් පෙරනිමියෙන් භාවිතා වේ - මැකෝස් හැරුණු විට zshකැටලිනා (10.15) හි පෙරනිමිය . FreeBSD, පෙරනිමියෙන්, bashස්ථාපනය කර නැත.


shPOSIX ට බොහෝ දුරට පෙර. මේ දිනවල, ඔබ shසොයා ගන්නා ඕනෑම දෙයක් අවම වශයෙන් POSIX- අනුකූල වේ යැයි ඔබ බලාපොරොත්තු වනු ඇත ; නමුත් උරුම පද්ධති මත මෙය කිසිසේත් ලබා දී නැත. පොසික්ස් කවචයට වඩා බොහෝ සෙයින් ප්‍රමිතිකරණය කරයි; ඇත්ත වශයෙන්ම, මෙහෙයුම් පද්ධති ඇමතුම් සහ පුස්තකාල කාර්යයන් ප්‍රමිතිකරණය කිරීම වඩා වැදගත් යැයි ඔබට තර්ක කළ හැකිය.
ත්‍රිත්ව

මම පොසික්ස් පිළිබඳ දේවල් අවුල් සහගත ලෙස ඉවත් කළෙමි
රයන් ටේලර්

4

bash සහ sh එකිනෙකට වෙනස් ෂෙල් වෙඩි දෙකකි. මූලික වශයෙන් bash යනු වැඩි විශේෂාංග සහ වඩා හොඳ වාක්‍ය ඛණ්ඩයකි. බොහෝ විධානයන් එකම ආකාරයකින් ක්‍රියා කරයි, නමුත් ඒවා වෙනස් වේ. බාෂ් (බැෂ්) යනු පවතින (නමුත් බහුලව භාවිතා වන) යුනික්ස් ෂෙල් වෙඩි වලින් එකකි. Bash යනු "Bourne Again SHell" යන්නයි, එය මුල් බෝර්න් කවචයේ (sh) ආදේශ කිරීම / වැඩිදියුණු කිරීමකි.

ෂෙල් ස්ක්‍රිප්ටින් ඕනෑම කවචයක ස්ක්‍රිප්ටින් වන අතර, බාෂ් ස්ක්‍රිප්ටින් විශේෂයෙන් බාෂ් සඳහා ස්ක්‍රිප්ටින් කරයි. කෙසේ වෙතත්, ප්‍රායෝගිකව, "ෂෙල් ස්ක්‍රිප්ට්" සහ "බාෂ් ස්ක්‍රිප්ට්" බොහෝ විට එකිනෙකට වෙනස් ලෙස භාවිතා කරනු ලැබේ.

එසේ පැවසීමෙන් පසු, බොහෝ පද්ධති වල / bin / sh සංකේතාත්මක සම්බන්ධකයක් වනු ඇති බව ඔබ වටහා ගත යුතු අතර එය sh ට ආයාචනා නොකරනු ඇත. ලිනක්ස් බෙදාහැරීම් වල සාමාන්‍ය හැසිරීම වන උබුන්ටු / බින් / ෂා හි, නමුත් දැන් ඩෑෂ් නමින් හැඳින්වෙන වෙනත් කවචයකට සම්බන්ධ වීම දක්වා වෙනස් වී ඇත. මම බාෂ් භාවිතා කරමි, එය බොහෝ දුරට ප්‍රමිතියකි (හෝ අවම වශයෙන් වඩාත් පොදු, මගේ අත්දැකීම් වලින්). ඇත්ත වශයෙන්ම, බාෂ් ස්ක්‍රිප්ට් එකක් #! / Bin / sh භාවිතා කරන විට ගැටලු පැන නගී.


3

/bin/shඑකම වැඩසටහනට ආයාචනා කිරීම හෝ නොකිරීම /bin/bash.

shPOSIX ට අවශ්‍ය අවම වශයෙන් විශේෂාංග සඳහා සහය දක්වයි (නිවැරදි ක්‍රියාත්මක කිරීමක් උපකල්පනය කරයි). එය දිගු සඳහා ද සහාය විය හැකිය.

bash, “Bourne Again Shell”, sh plus bash- විශේෂිත දිගු සඳහා අවශ්‍ය අංග ක්‍රියාත්මක කරයි. සම්පූර්ණ දිගුවන් සමූහය මෙහි විස්තර කිරීමට තරම් දිගු වන අතර එය නව නිකුතු සමඟ වෙනස් වේ. වෙනස්කම් බාෂ් අත්පොතෙහි ලේඛනගත කර ඇත. info bash"බෑෂ් විශේෂාංග" කොටස (වත්මන් අනුවාදයේ 6 වන කොටස) ටයිප් කර කියවන්න, නැතහොත් වත්මන් ලියකියවිලි මාර්ගගතව කියවන්න .


shPATHඔබගේ වර්තමාන කවචයේ නිවැරදි සැකසුමක් තිබේ නම් පමණක් ඔබට POSIX කවචයක් ලබා දේ . ඔබට POSIX කවචයක් ලබා දෙන නිශ්චිත PATH- නමක් නොමැත.
schily

දීර්ඝ කාලයක් තිස්සේ, shඅවශ්යයෙන්ම නොවන පවා ඔබ POSIX කටු, Solaris මත, උදාහරණයක් ලබා දීම.
ත්‍රිත්ව

1

වෙනස්කම් හැකිතාක් පහසු: මූලික අවබෝධයකින් පසුව, ඉහත පළ කර ඇති අනෙක් අදහස් අල්ලා ගැනීමට පහසු වනු ඇත.

ෂෙල් - "ෂෙල්" යනු වැඩසටහනක් වන අතර එය පරිශීලකයා සහ මෙහෙයුම් පද්ධතිය (කර්නලය) අතර අන්තර්ක්‍රියාකාරිත්වයට පහසුකම් සපයයි. Sh, bash, csh, zsh ... යනාදී බොහෝ ෂෙල් ක්‍රියාත්මක කිරීම් තිබේ.

ඕනෑම ෂෙල් වැඩසටහන් භාවිතා කරමින්, එම ෂෙල් වැඩසටහන මඟින් සහය දක්වන විධාන ක්‍රියාත්මක කිරීමට අපට හැකි වේ.

Bash - එය ව්‍යුත්පන්න කර ඇත්තේ B ourne- a gain Sh ell. මෙම වැඩසටහන භාවිතා කරමින්, ෂෙල් විසින් නිශ්චිතව දක්වා ඇති සියලුම විධාන ක්‍රියාත්මක කිරීමට අපට හැකි වේ. එසේම, මෙම වැඩසටහනට විශේෂයෙන් එකතු කරන ලද සමහර විධාන ක්‍රියාත්මක කිරීමට අපට හැකි වේ. බෑෂ් ෂා සමඟ පසුගාමී අනුකූලතාවයක් ඇත.

ෂ - එය බෝර්න් ෂෙල් වෙතින් උපුටා ගන්නා ලද්දකි. "sh" කවචයේ දක්වා ඇති සියලුම විධාන සඳහා සහය දක්වයි. ක්‍රම, මෙම වැඩසටහන භාවිතා කරමින්, අපට ෂෙල් විසින් නියම කර ඇති සියලුම විධාන ක්‍රියාත්මක කිරීමට හැකි වනු ඇත.

වැඩි විස්තර සඳහා, කරන්න: - https://man.cx/sh - https://man.cx/bash


POSIX තේරුම් ගැනීමට, ඇලෙක්ස්ගේ ප්‍රතිචාරය කියවන්න කරුණාකර පරීක්ෂා කරන්න: stackoverflow.com/a/1780614/1261003
රයිහාන්හබ්

මම POSIX තේරුම් ගැනීමට උත්සාහ නොකරමි. මම ඔබේ පිළිතුර සමාලෝචනය කරමින් සිටින අතර ඒ නිසා මට එය දැකීමට අවශ්‍යයි ඔබේ පිළිතුර වටිනාකමක් එක් කරයි. මම හිතන්නේ නැහැ එහෙම වෙයි කියලා.
Scratte

මෙම කුඩා පැහැදිලි කිරීම් නවකයකුට ඉහත සාකච්ඡා වලදී භාවිතා කරන ප්‍රභාෂාව වඩාත් සුවපහසු ලෙස වටහා ගැනීමට උපකාරී වනු ඇතැයි මම විශ්වාස කරමි. @Scratte
Raihanhbh

-1

ලිනක්ස් මෙහෙයුම් පද්ධතිය විවිධ වර්ගයේ ෂෙල් ලබා දෙයි. ෂෙල් වෙඩි වල බොහෝ විධාන පොදු වුවද, සෑම වර්ගයකටම අද්විතීය ලක්ෂණ ඇත. විවිධ වර්ගයේ වැඩිපුරම භාවිතා කරන ෂෙල් වෙඩි අධ්‍යයනය කරමු.

ෂෙල්:

ෂෙල් කවචය බෝර්න් ෂෙල් ලෙසද හැඳින්වේ. 1977 දී ඒටී ඇන්ඩ් ටී බෙල් ලැබ් හි දී ස්ටීවන් බෝර්න් විසින් යුනික්ස් පරිගණක සඳහා සංවර්ධනය කරන ලද පළමු කවචය ෂෙල් ෂෙල් වේ. එයට බොහෝ ස්ක්‍රිප්ටින් මෙවලම් ඇතුළත් වේ.

බෑෂ් කවචය:

Bash shell යනු Bourne Again Shell යන්නයි. බාෂ් ෂෙල් යනු බොහෝ ලිනක්ස් බෙදාහැරීම්වල පෙරනිමි කවචය වන අතර ෂෙල් ෂෙල් වෙනුවට ආදේශකයක් වේ (ෂෙල් ෂෙල් ද බාෂ් ෂෙල් තුළ ක්‍රියාත්මක වේ). Bash Shell හට Sh shell ස්ක්‍රිප්ට් වලින් වැඩි ප්‍රමාණයක් වෙනස් කිරීමකින් තොරව ක්‍රියාත්මක කළ හැකි අතර විධාන රේඛා සංස්කරණ අංගයක් ද ලබා දිය හැකිය.


කෙන් තොම්සන් විසින් මීට පෙර කවචයක් තිබුණි. බෝර්න් කවචය v7 යුනික්ස් (1979) හි නිල වශයෙන් හඳුන්වා දෙන ලදී.
ත්‍රිත්ව
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.