Bash හි, අන්වර්ථය කවදාද, ස්ක්‍රිප්ට් කළ යුත්තේ කවදාද, ශ්‍රිතයක් ලිවිය යුත්තේ කවදාද?


372

මෙම ප්‍රශ්නය ඇසීමට මට ලිනක්ස් භාවිතය වසර 10 කට ආසන්න කාලයක් ගතවී ඇත. ඒ සියල්ල අත්හදා බැලීම් සහ දෝෂ සහ අහඹු රෑ අන්තර්ජාල සැරිසැරීමකි.

නමුත් මේ සඳහා මිනිසුන්ට අවුරුදු 10 ක් අවශ්‍ය නොවිය යුතුය. මම ලිනක්ස් සමඟ ආරම්භ කරන්නේ නම්, මට දැන ගැනීමට අවශ්‍ය වන්නේ: අන්වර්ථය කවදාද, ස්ක්‍රිප්ට් කළ යුත්තේ කවදාද සහ ශ්‍රිතයක් ලිවිය යුත්තේ කවදාද?

අන්වර්ථ නාමයන් ගැන සැලකිලිමත් වන විට, මම තර්ක නොගන්නා ඉතා සරල මෙහෙයුම් සඳහා අන්වර්ථ නාම භාවිතා කරමි.

alias houston='cd /home/username/.scripts/'

එය පැහැදිලිව පෙනේ. නමුත් සමහර අය මෙය කරයි:

alias command="bash bashscriptname"

(එය .bashrcගොනුවට එක් කරන්න )

එය කිරීමට හොඳ හේතුවක් තිබේද? මම දැඩි උත්සාහයක් දරමි, නමුත් මට එය කිරීමට අවශ්‍ය ඕනෑම තත්වයක් ගැන අවංකවම සිතිය නොහැක. එබැවින්, වෙනසක් ඇති කළ හැකි අද්දර නඩුවක් තිබේ නම්, කරුණාකර පහත පිළිතුරු දෙන්න.

මක් නිසාද chmod +xයත්, මම මගේ PATH හි යමක් තබන අතර එය වසර ගණනාවකට පසු ලිනක්ස් අත්හදා බැලීම් සහ දෝෂයන්ගෙන් පසුව පැමිණි තවත් දෙයකි.

එය ඊළඟ මාතෘකාවට මා ගෙන එයි. නිදසුනක් ලෙස, .scripts/මගේ .bashrc( PATH=$PATH:/home/username/.scripts/) වෙත පේළියක් එක් කිරීමෙන් මම නිවාස නාමාවලියෙහි සැඟවුණු ෆෝල්ඩරයක් ( ) මගේ PATH වෙත එක් කළෙමි , එබැවින් එහි ක්‍රියාත්මක කළ හැකි ඕනෑම දෙයක් ස්වයංක්‍රීයව ස්වයංක්‍රීයව සම්පූර්ණ වේ.

මට අවශ්‍ය නම්.

මට එය ඇත්තෙන්ම අවශ්‍ය නැත, නමුත්, මට අවශ්‍යද? මම එය භාවිතා කරන්නේ පයිතන් වැනි කවච නොවන භාෂාවන් සඳහා පමණි.

එය කවචය නම්, මට එකම ශ්‍රිතයක් ලිවිය හැකිය .bashrc:

funcname () {
  somecommand -someARGS "$@"
}

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

මුළු ස්ක්‍රිප්ට් ඩිරෙක්ටරියක්ම පරිගණකයෙන් පරිගණකයට ගෙන යනවා වෙනුවට, අනෙක් සියල්ලන්ගේ .bashrc මගේම දෑ වෙනුවට ආදේශ කිරීම අවසන් කළෙමි.

නමුත් මට කිසිවක් මග හැරුණාද?

ඉතින්, ආරම්භක ලිනක්ස් පරිශීලකයෙකුට අන්වර්ථය, ස්ක්‍රිප්ට් කළ යුත්තේ කවදාද සහ ශ්‍රිතයක් ලිවිය යුත්තේ කවදාද?

එය පැහැදිලිව පෙනෙන්නට නොමැති නම්, මම උපකල්පනය කරන්නේ මෙයට පිළිතුරු දෙන පුද්ගලයින් විකල්ප තුනම භාවිතා කරනු ඇති බවයි. ඔබ අන්වර්ථයන් පමණක් භාවිතා කරන්නේ නම්, හෝ ස්ක්‍රිප්ට් පමණක් භාවිතා කරන්නේ නම් හෝ කාර්යයන් පමණක් භාවිතා කරන්නේ නම් - හෝ ඔබ අන්වර්ථ නාම, ස්ක්‍රිප්ට් හෝ අන්වර්ථ නාම සහ කාර්යයන් හෝ ස්ක්‍රිප්ට් සහ ශ්‍රිත පමණක් භාවිතා කරන්නේ නම් - මෙම ප්‍රශ්නය ඇත්ත වශයෙන්ම ඔබ ඉලක්ක කර නොගනී.



11
මෙම ප්‍රශ්නය අරමුණු නොකරන {අන්වර්ථය, ස්ක්‍රිප්ට්, ශ්‍රිතය of හි සියලුම අනු කොටස් පැහැදිලිවම සඳහන් කිරීම සඳහා +1. +1 ඔබ ශුන්‍ය උප කුලකය මඟ හැරීම සුදුසු යැයි ළමා විශ්වාසයට.
තෝමස් එල් හොලාඩේ

2
ප්‍රශ්නය විශේෂයෙන් බැෂ් ගැන විමසුවද, පැරණි බෝර්න් ෂෙල් වෙඩි වල 'අන්වර්ථය' ඇති නමුත් ඒවා ක්‍රියාකාරී නොවන බව සලකන්න. ඔබ අනුකූලතාව ගැන කරදර වන්නේ නම් මෙය වෙනසක් ඇති කරයි.
ඇන්ඩි බී

.Bashrc ඇත්තටම හොඳම ස්ථානයද, නැතිනම් අවම වශයෙන් place න ස්ථානයක්ද? ලිනක්ස් හි එකම දේ කිරීමට බොහෝ ක්‍රම තිබේ, එය මම අගය කරමි, කෙසේ වෙතත්, සියල්ල එක හා සමාන වීම, මම වඩාත් පොදු ක්‍රමයට දේවල් කිරීමට කැමැත්තෙමි.
කිට් 10

Answers:


246

අන්වර්ථයක් command ලදායී ලෙස (පොදුවේ) විධානයක පෙරනිමි විකල්ප වෙනස් කිරීමට වඩා වැඩි යමක් නොකළ යුතුය. එය විධාන නාමයේ සරල පෙළ ප්‍රතිස්ථාපනයකට වඩා වැඩි දෙයක් නොවේ. එයට තර්ක සමඟ කිසිවක් කළ නොහැකි නමුත් එය සැබවින්ම ක්‍රියාත්මක වන විධානය වෙත යොමු කරන්න. එබැවින් ඔබට තනි විධානයක ඉදිරිපස තර්කයක් එක් කිරීමට අවශ්‍ය නම් අන්වර්ථයක් ක්‍රියා කරයි. පොදු උදාහරණ වේ

# Make ls output in color by default.
alias ls="ls --color=auto"
# make mv ask before overwriting a file by default
alias mv="mv -i"

ඔබට අන්වර්ථයකට වඩා සංකීර්ණ යමක් කිරීමට අවශ්‍ය වූ විට එය භාවිතා කළ යුතු නමුත් එය තනිවම ප්‍රයෝජනවත් නොවේ. උදාහරණයක් ලෙස, නල මාර්ගයක තිබේද යන්න මත පදනම්ව පෙරනිමි හැසිරීම වෙනස් කිරීම ගැන මා ඇසූ ප්‍රශ්නයකට මෙම පිළිතුර ගන්නgrep :

grep() { 
    if [[ -t 1 ]]; then 
        command grep -n "$@"
    else 
        command grep "$@"
    fi
}

එය ශ්‍රිතයක් සඳහා කදිම නිදසුනකි, මන්ද එය අන්වර්ථයකට වඩා සංකීර්ණ බැවින් (කොන්දේසියක් මත පදනම්ව විවිධ පෙරනිමි අවශ්‍ය වේ), නමුත් එය අන්තර්ක්‍රියාකාරී නොවන ස්ක්‍රිප්ටයක ඔබට අවශ්‍ය දෙයක් නොවේ.

ඔබට වැඩිපුර කාර්යයන් හෝ කාර්යයන් විශාල නම්, ඒවා සැඟවුණු නාමාවලියක වෙනම ලිපිගොනු වලට දමා ඒවා ඔබේ මූලාශ්‍රයෙන් ලබා ගන්න ~/.bashrc:

if [ -d ~/.bash_functions ]; then
    for file in ~/.bash_functions/*; do
        . "$file"
    done
fi

පිටපතක් තනිවම පැවතිය යුතුය. එය නැවත භාවිතා කළ හැකි හෝ එක් අරමුණකට වඩා භාවිතා කළ හැකි දෙයක් ලෙස වටිනාකමක් තිබිය යුතුය.


16
සමග මූලාශ්ර නම් - එය බව මතක තබා ගැනීම ද වැදගත් වේ .හෝ source- තිර රචනය වෙනම bash ක්රියාවලිය විසින් ක්රියාත්මක කරනු හා තමන්ගේ ම පරිසරය ඇත. මේ හේතුව නිසා, ෂෙල් පරිසරය වෙනස් කරන කිසිවක් (උදා: කාර්යයන්, විචල්‍යයන් යනාදිය) ඔබ ස්ක්‍රිප්ට් ධාවනය කරන ෂෙල් පරිසරය තුළ නොපවතිනු ඇත.
විල් වොස්ඩන්

267

අනෙක් පිළිතුරු පුද්ගලික රසය මත පදනම් වූ මෘදු පොදු මාර්ගෝපදේශ කිහිපයක් සපයයි, නමුත් අදාළ කරුණු නොසලකා හරින්න ස්ක්‍රිප්ට්, කාර්යයන් හෝ අන්වර්ථයන් අතර තීරණය කිරීමේදී සලකා බැලිය යුතු .

අන්වර්ථයන් සහ කාර්යයන්

  • අන්වර්ථ නාම සහ ක්‍රියාකාරිත්වයේ සමස්ත අන්තර්ගතය ෂෙල් මතකයේ ගබඩා කර ඇත.
  • මෙහි ස්වාභාවික ප්‍රතිවිපාකය අන්වර්ථයන් වන අතර ශ්‍රිතවලට පමණක් කළ හැකිය වත්මන් කවචයට පමණක් වන අතර, වෙනත් සංස්කරණ මඟින් ඔබට කවචයෙන් පෙළ සංස්කාරකවරුන්, ස්ක්‍රිප්ට් හෝ එකම කවචයේ ළමා අවස්ථා වැනි ආයාචනා කළ නොහැක.
  • අන්වර්ථයන් සහ ශ්‍රිත ක්‍රියාත්මක කරනු ලබන්නේ වත්මන් කවචයෙනි, එනම් ඒවා ක්‍රියාත්මක වන අතර කවචයේ වත්මන් පරිසරයට බලපායි. අන්වර්ථයක් හෝ ශ්‍රිතයක් ක්‍රියාත්මක කිරීමට වෙනම ක්‍රියාවලියක් අවශ්‍ය නොවේ.

පිටපත්

  • ෂෙල් වෙඩි ස්ක්‍රිප්ට් මතකයේ තබා නොගනී. ඒ වෙනුවට, අවශ්‍ය සෑම අවස්ථාවකම ඒවා ගබඩා කර ඇති ලිපිගොනු වලින් ස්ක්‍රිප්ට් කියවනු ලැබේ. ස්ක්‍රිප්ට් $PATHසෙවුමක් හරහා සොයාගත හොත් , බොහෝ ෂෙල් වෙඩි අනාගතයේ බැලීම් සඳහා කාලය ඉතිරි කර ගැනීම සඳහා එහි මාර්ග නාමයේ හැෂ් එකක් මතකයේ ගබඩා $PATHකරයි, නමුත් එය භාවිතයේ නොමැති විට ස්ක්‍රිප්ටයේ මතක අඩිපාරේ ප්‍රමාණය එයයි.
  • ශ්‍රිත හා අන්වර්ථ නාමවලට ​​වඩා වැඩි ආකාරයකින් ස්ක්‍රිප්ට් ආයාචනා කළ හැකිය. ඒවා පරිවර්තකයෙකුට තර්කයක් ලෙස ඉදිරිපත් කළ හැකිය, වැනි sh scriptහෝ කෙලින්ම ක්‍රියාත්මක කළ හැකි ලෙස ආයාචනා කළ හැකිය, එම අවස්ථාවේ දී එය ක්‍රියාත්මක කිරීම සඳහා ෂෙබාං රේඛාවේ (උදා #!/bin/sh) පරිවර්තකයා කැඳවනු ලැබේ. අවස්ථා දෙකේදීම, ස්ක්‍රිප්ට් එක ක්‍රියාත්මක වන්නේ ඔබේ කවචයට වඩා වෙනස් පරිසරයක් සහිත වෙනම පරිවර්තක ක්‍රියාවලියක් මගිනි. ඇත්ත වශයෙන්ම, පරිවර්තක කවචය ආයාචනා කවචයට අනුරූප විය යුතු නැත. මේ ආකාරයට ආයාචනා කරන ලද ස්ක්‍රිප්ට් ඕනෑම සාමාන්‍ය ක්‍රියාත්මක කළ හැකි ආකාරයට හැසිරෙන බැවින් ඒවා ඕනෑම වැඩසටහනකට භාවිතා කළ හැකිය.

    අවසාන වශයෙන්, ස්ක්‍රිප්ටයක් වත්මන් කවචය මඟින් .හෝ සමහර කවච වලින් කියවා ධාවනය කළ හැකිය source. මෙම අවස්ථාවේ දී, පිටපත නිරන්තරයෙන් මතකයේ තබා ගැනීම වෙනුවට ඉල්ලුමට අනුව කියවන ශ්‍රිතයක් මෙන් ක්‍රියා කරයි.

අයදුම්පත

ඉහත සඳහන් කරුණු අනුව, අපට යමක් ස්ක්‍රිප්ට් එකක් හෝ ශ්‍රිතයක් / අන්වර්ථයක් සෑදිය යුතුද යන්න පිළිබඳ පොදු මාර්ගෝපදේශ කිහිපයක් ඉදිරිපත් කළ හැකිය.

  • ඔබේ කවචයට අමතරව වෙනත් වැඩසටහන් භාවිතා කිරීමට අවශ්‍ය විය යුතුද? එසේ නම් එය පිටපතක් විය යුතුය.

  • ඔබට එය අවශ්‍ය වන්නේ අන්තර්ක්‍රියාකාරී කවචයකින් පමණක්ද? බාහිර විධාන / ස්ක්‍රිප්ට් වලට බලපෑමක් නොකර අන්තර්ක්‍රියාකාරීව ක්‍රියාත්මක වන විට බොහෝ විධාන වල පෙරනිමි හැසිරීම වෙනස් කිරීමට අවශ්‍ය වීම සාමාන්‍ය දෙයකි. මෙම අවස්ථාව සඳහා, කවචයේ "අන්තර්ක්‍රියාකාරී-මාදිලිය-පමණක්" rc ගොනුවේ අන්වර්ථ / ශ්‍රිත කට්ටලයක් භාවිතා කරන්න ( bashමේ සඳහා .bashrc).

  • එය කවචයේ පරිසරය වෙනස් කිරීමට අවශ්‍යද? ශ්‍රිතයක් / අන්වර්ථයක් හෝ උපුටා ගත් පිටපතක් යන දෙකම කළ හැකි තේරීම් වේ.

  • එය ඔබ නිතර භාවිතා කරන දෙයක්ද? එය මතකයේ තබා ගැනීම වඩා කාර්යක්ෂම වේ, එබැවින් හැකි නම් එය ශ්‍රිතයක් / අන්වර්ථයක් බවට පත් කරන්න.

  • අනෙක් අතට, එය ඔබ කලාතුරකින් පමණක් භාවිතා කරන දෙයක්ද? එවැනි අවස්ථාවකදී, ඔබට එය අවශ්‍ය නොවන විට එය මතකයේ රඳවා තබා ගැනීමේ කිසිදු තේරුමක් නැත, එබැවින් එය පිටපතක් බවට පත් කරන්න.


Functions ශ්‍රිත හා අන්වර්ථ නාමයන් අතර වැදගත් වෙනස්කම් ඇති අතර, ඒවා එකට කාණ්ඩ කර ඇත්තේ ශ්‍රිතයන්ට අන්වර්ථයන්ට හැකි සෑම දෙයක්ම කළ හැකි බැවිනි. අන්වර්ථ නාමයන්ට දේශීය විචල්‍යයන් තිබිය නොහැකි අතර තර්ක සැකසීමටද නොහැකි අතර එක් පේළියකට වඩා දිගු කාලයක් සඳහා ඒවා අපහසු වේ.

Ix යුනික්ස් පද්ධතියක ක්‍රියාත්මක වන සෑම ක්‍රියාවලියකටම යුගල සමූහයකින් සමන්විත පරිසරයක්variable=value ඇත, ඒවා බොහෝ විට LANGපෙරනිමි පෙදෙසි සහ PATHක්‍රියාත්මක කළ හැකි සෙවුම් මාර්ග නියම කිරීම වැනි ගෝලීය වින්‍යාස සැකසුම් අඩංගු වේ .


27
IMHO මෙය හොඳම පිළිතුරයි.
ලූක් එම්

4
ප්රශ්න / පිළිතුරු ආකෘතිය විශිෂ්ට අදහසකි. මම ඒක හොරකම් කරන්නම්. ;-)
මයිකල්

4
සඳහන් කිරීම වටී: ස්ක්‍රිප්ට් දෙකක් (හෝ වැඩි ගණනක්) යම් කේතයක් බෙදා ගැනීමට අවශ්‍ය නම්, එම කේත දෙකම ආනයනය / ප්‍රභවය වන තුන්වන ගොනුවක පිහිටා ඇති ශ්‍රිතයක් තුළට දැමීම වඩාත් සුදුසුය.
kbolino

3
එම ප්‍රශ්න ලැයිස්තුවට එක් කළ යුතු තවත් අයිතමයක්: ඔබට කවදා හෝ පියාසර කරන විධානයෙහි ක්‍රියාකාරිත්වය වෙනස් කිරීමට අවශ්‍යද? ස්ක්‍රිප්ටයක වෙනස්කම් සෑම සැසිවාරයකම පිළිබිඹු වන අතර, කාර්යයන් සහ අන්වර්ථයන් එක් සැසිවාරයක පදනම මත නැවත පූරණය කළ යුතුය.
Stratus3D

3
හොඳ පිළිතුරක්. තවත් එක් වැදගත් දෙයක් (මට): වෙනත් උපයෝගීතාවන්ට "කෙටිමඟක්" නිර්මාණය කිරීමේදී, අන්වර්ථයක් භාවිතා කිරීම වඩා හොඳය, මන්ද දැනට පවතින ස්වයංක්‍රීයව සම්පූර්ණ කිරීම අන්වර්ථයන් සමඟ ක්‍රියා කරයි, නමුත් ස්ක්‍රිප්ට් හෝ ශ්‍රිත සමඟ නොවේ (එබැවින් අන්වර්ථ සඳහා +1). උදා: alias g='gradle'මගේ gඅන්වර්ථය භාවිතා කරන විට මට ස්වයංක්‍රීයව සම්පුර්ණ වීමක් ලැබෙනු ඇත, නමුත් ස්ක්‍රිප්ට් එකක් gradle $*හෝ ශ්‍රිතයක් භාවිතා කරන විට එය පිටතට නොයනු ඇතgradle $@
යෝව් අහරෝනි

39

මම හිතන්නේ එය එක් එක් පුද්ගලයාගේ රුචිකත්වයට අනුව ය. මට නම් තර්කනය මේ ආකාරයට ය:

  • මුලින්ම මම අන්වර්ථයක් සෑදීමට උත්සාහ කරමි, මන්ද එය සරලම ය.
  • එක පේළියකට ගැළපෙන පරිදි කාරණය ඉතා සංකීර්ණ නම්, මම එය ශ්‍රිතයක් බවට පත් කිරීමට උත්සාහ කරමි.
  • ශ්‍රිතය පේළි දුසිමකට වඩා වැඩීමට පටන් ගත් විට මම එය පිටපතකට දැමුවෙමි.

වැඩ කරන දෙයක් කිරීමෙන් ඔබව සීමා කිරීමට ඇත්ත වශයෙන්ම කිසිවක් නැත .


6
මම බොහෝ විට ක්‍රියාකාරී විකල්පය මඟ හැර, වහාම පිටපතක් සාදමි. නමුත් එය අර්ධ වශයෙන් රස කාරණයක් බව මම එකඟ වෙමි
බර්න්හාර්ඩ්

2
ශ්‍රිතයක් ඔබට ස්ක්‍රිප්ට් කිහිපයකින් අවශ්‍ය නම් එය අර්ථවත් කිරීමට පටන් ගනී.
නිල්ස්

7
... හෝ වත්මන් කවචය වෙනස් කිරීමට ඔබට අතුරු ආබාධ අවශ්‍ය නම් .
ග්ලෙන් ජැක්මන්

තේරුමක් තියෙනවා මචං!
ගවේෂක

15

අවම වශයෙන් අර්ධ වශයෙන් එය පෞද්ගලික රසය පිළිබඳ කාරණයකි. අනෙක් අතට පැහැදිලි ක්‍රියාකාරී වෙනස්කම් කිහිපයක් තිබේ:

  • අන්වර්ථ නාම: සරල පෙළ ප්‍රතිස්ථාපනය සඳහා පමණක් සුදුසුය, තර්ක / පරාමිතීන් නොමැත
  • කාර්යයන්: ලිවීමට / භාවිතා කිරීමට පහසුය, සම්පූර්ණ ෂෙල් ස්ක්‍රිප්ටින් කිරීමේ හැකියාව, ලබා ගත හැක්කේ බාෂ් තුළ පමණි
  • ස්ක්‍රිප්ට්: වැඩි හෝ අඩු කාර්යයන් වැනි, නමුත් බාෂ් වලින් පිටත (කැඳවිය හැකි) ලබා ගත හැකිය

ෂෙල් ස්ක්‍රිප්ටින් දෙස බලන විට මම පසුගිය වසර කිහිපය තුළ අන්වර්ථ නාම ලිවීම නවතා දමා ඇත (ඒවා සියල්ලම කාලයත් සමඟ ක්‍රියාකාරීත්වයට වර්ධනය වන හෙයින්) සහ ස්ක්‍රිප්ට් කරන්නේ ඒවා බාෂ් නොවන පරිසරයන්ගෙන් ද ලබා ගත යුතු නම් පමණි.

PS: මෙය කිරීමට alias command="bash bashscriptname"මට කිසිම හේතුවක් පෙනෙන්නේ නැහැ. bashscriptname$ PATH හි නොමැති වුවද , සරල alias c=/path/to/scriptඑකක් ප්‍රමාණවත් වේ.


1
දී alias command="bash bashscriptname"තිර රචනය අවශ්යයෙන්ම ක්රියාත්මක විය යුතු නැත; තුළ alias c=/path/to/scriptඒ සඳහා වේ.
මාටින් - マ ー チ ン

කාර්යයන් "බාෂ් තුළ පමණක් ලබා ගත හැකිය" යන්න කිසිසේත්ම සත්‍ය නොවේ. ඔබ ඒවා බාෂ්-පමණක් අංගයක් යැයි පැවසීමට අදහස් කරන්නේ නම්, එය හුදෙක් අසත්‍යයකි (බෝර්න් ෂෙල් සහ සෑම අනුකූල ව්‍යුත්පන්නයකම ඒවා ඇත); ඒවා අන්තර්ක්‍රියාකාරී ෂෙල් වෙඩි වල අංගයක් යැයි ඔබ අදහස් කරන්නේ නම්, එය ද නිවැරදි නොවේ (අන්තර්ක්‍රියාකාරී කවච මඟින් ආරම්භයේදී පටවන ගොනුවක අන්වර්ථයන්, විචල්‍යයන් සහ කාර්යයන් අර්ථ දක්වා ඇතත්, පැහැදිලිවම ක්‍රියාකාරී නොවන ෂෙල් වෙඩි මඟින් පටවනු නොලැබේ).
ත්‍රිත්ව

ripripleee යන්නෙහි තේරුම "ඔබට exec()කාර්යයන් ෂෙල් කළ නොහැක " වැනි ය :-)
නොහිල්සයිඩ්

11

අන්වර්ථ නාම සහ කාර්යයන් පිළිබඳ අමතර කරුණු කිහිපයක් මෙන්න:

  • එකම නම් කළ අන්වර්ථය සහ ශ්‍රිතය සහජීවනය ඇති කළ හැකිය
  • අන්වර්ථ නාම අවකාශය පළමුව සොයා බලයි (පළමු උදාහරණය බලන්න)
  • අන්වර්ථයන් උප -ෂෙල්වල හෝ අන්තර්ක්‍රියාකාරී නොවන පරිසරයක සැකසිය නොහැක (දෙවන උදාහරණය බලන්න)

උදාහරණයක් වශයෙන්:

alias f='echo Alias'; f             # prints "Alias"
function f { echo 'Function'; }; f  # prints "Alias"
unalias f; f                        # prints "Function"

අපට පෙනෙන පරිදි, අන්වර්ථයන් සහ කාර්යයන් සඳහා වෙනම නාම අවකාශයන් ඇත; වැඩි විස්තර සොයා ගත හැකි declare -A -p BASH_ALIASESඅතර declare -f f, ඒවායේ අර්ථ දැක්වීම් මුද්‍රණය කරයි (දෙකම මතකයේ ගබඩා කර ඇත).

අන්වර්ථවල සීමාවන් පෙන්වන උදාහරණය:

alias a='echo Alias'
a        # OK: prints "Alias"
eval a;  # OK: prints "Alias"
( alias a="Nested"; a );  # prints "Alias" (not "Nested")
( unalias a; a );         # prints "Alias"
bash -c "alias aa='Another Alias'; aa"  # ERROR: bash: aa: command not found

අපට පෙනෙන පරිදි, අන්වර්ථයන් කූඩු නොවේ. එසේම, ඒවායේ භාවිතය අන්තර් ක්‍රියාකාරී සැසි වලට සීමා වේ.

අවසාන වශයෙන්, ශ්‍රිතයක් ක්ෂණිකව කැඳවීම ප්‍රකාශ කිරීමෙන් ඔබට අන්වර්ථයක් තුළ අත්තනෝමතික ගණනය කිරීමක් කළ හැකි බව සලකන්න.

alias a_complex_thing='f() { do_stuff_in_function; } f'

Git අන්වර්ථ නාමයන් සම්බන්ධයෙන් දැනටමත් පුළුල් ලෙස භාවිතා වේ. ශ්‍රිතයක් ප්‍රකාශයට පත්කිරීමේ වාසිය නම්, ඔබේ අන්වර්ථය .එකම නම් කරන ලද ශ්‍රිතයක් ප්‍රකාශ කිරීමට සිදු වන ස්ක්‍රිප්ටයක් ප්‍රභව-ඉන්ග් (හෝ භාවිතා කිරීම ) මගින් නැවත ලිවිය නොහැකි වීමයි .


10

පිටපතක් ලිවිය යුත්තේ කවදාද ...

  • ස්ක්‍රිප්ට් මෘදුකාංග සංරචක (aka. මෙවලම්, විධාන, ක්‍රියාවලි, ක්‍රියාත්මක කළ හැකි, වැඩසටහන්) වඩාත් සංකීර්ණ සංරචක වලට එක් කරයි, ඒවා වඩාත් සංකීර්ණ සංරචක වලට එකලස් කළ හැකිය.
  • ස්ක්‍රිප්ට් සාමාන්‍යයෙන් ක්‍රියාත්මක කළ හැකි බැවින් ඒවා නමින් හැඳින්විය හැක. කැඳවූ විට, ස්ක්‍රිප්ට් එක ක්‍රියාත්මක වීම සඳහා නව උපසිරැසියක් බිහි වේ. ඕනෑම exportසංස්කරණ විචල්‍යයන් සහ / හෝ ශ්‍රිතවල පිටපත් ස්ක්‍රිප්ටයට අගය අනුව යවනු ලැබේ. එම විචල්‍යයන්හි වෙනස්වීම් මව් පිටපතට නැවත ප්‍රචාරය නොවේ .
  • ස්ක්‍රිප්ට් ඇමතුම් ස්ක්‍රිප්ටයේ කොටසක් ලෙස පටවනු ලැබේ. මෙය වෙනත් භාෂාවන් "ආනයනය" හෝ "ඇතුළත් කිරීම" ලෙස හඳුන්වන දෙයට සමානය. උපුටා ගත් විට, ඒවා පවත්නා ක්‍රියාවලිය තුළ ක්‍රියාත්මක වේ. කිසිදු උප ක්‍රියාවලියක් බිහි නොවේ.

ශ්‍රිතයක් ලිවිය යුත්තේ කවදාද ...

  • කාර්යයන් effectively ලදායී ලෙස පූර්ව පටවා ඇති ෂෙල් ස්ක්‍රිප්ට් වේ. ඔවුන් වෙනම ස්ක්‍රිප්ට් එකක් ඇමතීමට වඩා ටිකක් හොඳින් ක්‍රියා කරයි, නමුත් එය යාන්ත්‍රික තැටියෙන් කියවිය යුතු නම් පමණි. වර්තමානයේ ෆ්ලෑෂ් ඩ්‍රයිව්, එස්එස්ඩී සහ ලිනක්ස් භාවිතා නොකරන ලද RAM වල සාමාන්‍ය හැඹිලි ප්‍රසාරණය වීම එම වැඩිදියුණු කිරීම බොහෝ දුරට කළ නොහැකි ය.
  • මොඩියුලරිටි, සංසරණය සහ නැවත භාවිතා කිරීම සාක්ෂාත් කර ගැනීමේ කාර්යයන් බාෂ්ගේ මූලධර්ම ලෙස ක්‍රියා කරයි. ඒවා පිටපත් වල පැහැදිලි බව, විශ්වසනීයත්වය සහ නඩත්තු කිරීමේ හැකියාව වැඩි දියුණු කරයි.
  • ශ්‍රිතයක් ඇමතීම සඳහා වන සින්ටැක්ස් රීති ක්‍රියාත්මක කළ හැකි ඇමතීමට සමාන වේ. ක්‍රියාත්මක කළ හැකි වෙනුවට එකම නමක් සහිත ශ්‍රිතයක් ක්‍රියාත්මක කළ හැකිය.
  • කාර්යයන් ඔවුන් සිටින ස්ක්‍රිප්ටයට දේශීය වේ.
  • කාර්යයන් අපනයනය කළ හැකිය ( අගය අනුව පිටපත් කර ඇත ) එබැවින් ඒවා ස්ක්‍රිප්ට් ලෙස හැඳින්විය හැක. මේ අනුව, කාර්යයන් ව්‍යාප්ත වන්නේ ළමා ක්‍රියාවලීන් සඳහා පමණි, කිසි විටෙකත් දෙමාපියන් නොවේ.
  • කාර්යයන් නැවත භාවිතා කළ හැකි විධාන නිර්මාණය කරයි, ඒවා බොහෝ විට පුස්තකාලවලට එක්රැස් වේ (ශ්‍රිත අර්ථ දැක්වීම් පමණක් ඇති ස්ක්‍රිප්ටයක්) වෙනත් ස්ක්‍රිප්ට් මඟින් ලබා ගත හැකිය.

අන්වර්ථයක් ලිවිය යුත්තේ කවදාද ...

පුස්තකාල ස්ක්‍රිප්ට් වැනි ස්ක්‍රිප්ට් තුළ, සමහර විට ශ්‍රිතයක් සඳහා අන්වර්ථයක් අවශ්‍ය වේ, එනම් ශ්‍රිතයක් නැවත නම් කරන විට නමුත් පසුගාමී අනුකූලතාව අවශ්‍ය වේ. පැරණි ශ්‍රිතය සමඟ සරල ශ්‍රිතයක් නිර්මාණය කිරීමෙන් මෙය කළ හැකි අතර එහි සියලු තර්ක නව ශ්‍රිතයට යොමු කරයි ...

# A bash in-script 'alias'
function oldFunction () { newFunction "$@"; }

9

මා විශ්වාස නොකරන තවත් දෙයක් ගෙනැවිත් ඇත: ශ්‍රිතයක් ක්‍රියාත්මක වන්නේ ආයාචනා ක්‍රියාවලියේ සන්දර්භය තුළ වන අතර ස්ක්‍රිප්ටයක් නව කවචයක් නිර්මාණය කරයි.

කාර්ය සාධනය සඳහා මෙය වැදගත් විය හැකිය - ශ්‍රිතයක් වේගවත් බැවින් එය එසේ නොවන fork()අතර exec(). සාමාන්‍ය තත්වයන් තුළ, වෙනස ඉතා සුළුය, නමුත් ඔබ මතකයෙන් තොර පද්ධතියක් නිදොස්කරණය කරන්නේ නම් සහ පිටු විසි කිරීමක් නම්, එය විශාල වෙනසක් ඇති කළ හැකිය.

එසේම, ඔබගේ වර්තමාන කවච පරිසරය වෙනස් කිරීමට අවශ්‍ය නම්, ඔබ ශ්‍රිතයක් භාවිතා කළ යුතුය. නිදසුනක් ලෙස, ශ්‍රිතයකට $PATHවත්මන් කවචය සඳහා විධාන සෙවීම වෙනස් කළ හැකි නමුත් ස්ක්‍රිප්ටයකට එය කළ නොහැක්කේ එය දෙබලක / ක්‍රියාත්මක පිටපතක් මත ක්‍රියාත්මක වන බැවිනි $PATH.


මෙම කාර්යයන් දරුවන්ට ප්‍රචාරණය කිරීම ක්‍රියාත්මක වන්නේ කෙසේද?
HappyFace

1
AppHappyFace In Bash මඟින් ඔබට export -fශ්‍රිතයක් කළ හැකිය , නමුත් මෙහි අභ්‍යන්තර ක්‍රියාකාරිත්වය තරමක් අපැහැදිලි ය. මෙය මා විශ්වාස කරන සාම්ප්‍රදායික බෝර්න් කවචයට ගෙන යා නොහැක.
ත්‍රිත්ව

7

ස්ක්‍රිප්ට් සහ අන්වර්ථය, ස්ක්‍රිප්ට් සහ ක්‍රියාකාරිත්වය අන්‍යෝන්‍ය වශයෙන් වෙනස් නොවේ. ඔබට ස්ක්‍රිප්ට් වල අන්වර්ථයන් සහ කාර්යයන් ගබඩා කළ හැකිය.

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

සිට යළි-යොමුවීම් ජ්යාමිතික නොමැත , ඔවුන් ඉතා සීමා ඇත; සාමාන්‍යයෙන් සමහර පෙරනිමි පරාමිතීන් අර්ථ දැක්වීමට.

කාර්යය කේතය වෙනම ඒකකයක් , කුඩා, ප්රයෝජනවත් කොටස් වලට වෙන් කරන නොහැකි කේතය ක මාර්ග කිහිපයක් හොඳින් අර්ථ සංකල්පය; වෙනත් කාර්යයන් මගින් සෘජුව හෝ වෙනත් ආකාරයකින් නැවත භාවිතා කළ හැකි එකක්.


6

එය ඉතා වේගවත් විය යුතු නම්, එය අන්වර්ථයක් හෝ ශ්‍රිතයක් බවට පත් කරන්න.

ඔබ කැමති කවචයෙන් පිටත එය භාවිතා කළ හැකි නම්, එය පිටපතක් බවට පත් කරන්න. 1

එය තර්ක ගන්නේ නම්, එය ශ්‍රිතයක් හෝ පිටපතක් බවට පත් කරන්න.

එයට විශේෂ අක්ෂර අඩංගු වීමට අවශ්‍ය නම් එය අන්වර්ථයක් හෝ පිටපතක් බවට පත් කරන්න. 2

එය සුඩෝ සමඟ වැඩ කිරීමට අවශ්‍ය නම්, එය අන්වර්ථයක් හෝ පිටපතක් බවට පත් කරන්න. 3

ලොග් නොවී පහසුවෙන් ඇතුළුවීමට ඔබට අවශ්‍ය නම්, ස්ක්‍රිප්ටයක් පහසු වේ. 4

පාද සටහන්

1 නැතහොත් එය අන්වර්ථයක් බවට පත් කර, එය දමා ~/.envසකසන්න export ENV="$HOME/.env", නමුත් එය අතේ ගෙන යා හැකි ලෙස ක්‍රියා කිරීම සංකීර්ණ වේ.

2 ක්‍රියාකාරී නම් හඳුනාගැනීම් විය යුතුය, එබැවින් ඒවා අකුරකින් ආරම්භ විය යුතු අතර අකුරු, ඉලක්කම් සහ අවධාරනය පමණක් අඩංගු විය හැකිය. උදාහරණයක් ලෙස, මට අන්වර්ථයක් alias +='pushd +1'ඇත. එය ශ්‍රිතයක් විය නොහැක.

3 අන්වර්ථය එකතු කරන්න alias sudo='sudo '. මහසමයම වැනි වෙනත් ඕනෑම අණ strace, gdbආදිය එහි පළමු වාදය ලෙස විධානය ගත වන බව.

4 මෙයද බලන්න: fpath. ඇත්ත වශයෙන්ම ඔබට කළ හැකි source ~/.bashrcහෝ ඒ හා සමාන විය හැකිය, නමුත් මෙය බොහෝ විට වෙනත් අතුරු ආබාධ ඇති කරයි.


1
මම දැනගෙන හිටියේ නැහැ ඔයාට අන්වර්ථයක් කරන්න පුළුවන් කියලා +. පරීක්‍ෂණයෙන් පසු මම සොයාගත්තා බාෂ් වලදී ඔබට +අන්වර්ථයක් කළ හැකි නමුත් ශ්‍රිතයක් නොවන බව ඔබ පවසන පරිදි, නමුත් zsh යනු ප්‍රතිලෝමයි - +ශ්‍රිතයක් විය හැකි නමුත් අන්වර්ථයක් නොවේ.
කෙවින්

දී zshඔබ ලිවීමට ඇති alias -- +='some command here'.
මයිකල්

කෙසේ හෝ අන්වර්ථකරණය +අතේ ගෙන යා හැකි යැයි මම නොසිතමි . අන්වර්ථ නාමයන් පිළිබඳ POSIX පිරිවිතර
jw013

3
ආවරණ sudoභාවිතය සඳහා ඉහළට . 4 වන පාද සටහන සම්බන්ධයෙන්, මම මගේ අන්වර්ථ නාමයන් ~/.bash_aliasesසහ ක්‍රියාකාරී අර්ථ දැක්වීම් ගබඩා කර තබමි, ~/.bash_functionsඑවිට මට ඒවා පහසුවෙන් නැවත ලබා ගත හැකිය source(අතුරු ආබාධවලින් තොරව).
ඇන්තනි ජෝජෙගන්

3

සටහන් කිහිපයක් එකතු කිරීමට:

  • සුඩෝ සමඟ වෙනම ස්ක්‍රිප්ට් එකක් පමණක් භාවිතා කළ හැකිය (ඔබට පද්ධති ගොනුවක් සංස්කරණය කිරීමට අවශ්‍ය නම් වැනි), උදාහරණයක් ලෙස:
sudo v /etc/rc.conf  #where v runs vim in a new terminal window;
  • පද්ධති විධාන එකම නමින් ප්‍රතිස්ථාපනය කළ හැක්කේ අන්වර්ථයන් හෝ ශ්‍රිතයන් පමණි (ඔබ ඔබේ ස්ක්‍රිප්ට් PATH හි අවසානයට එක් කරයි යැයි උපකල්පනය කර, පද්ධති විධානයකට සමාන නමක් සහිත අහම්බෙන් හෝ අශෝභන ලෙස ස්ක්‍රිප්ට් නිර්මාණය කිරීමේදී ආරක්ෂාව සඳහා සුදුසු යැයි මම සිතමි), උදාහරණයක් වශයෙන්:
alias ls='ls --color=auto'  #enable colored output;
  • අන්වර්ථයන් සහ කාර්යයන් ක්‍රියාත්මක කිරීම සඳහා අඩු මතකයක් සහ කාලයක් ගත වේ, නමුත් පැටවීමට කාලය ගතවේ (ඔබ ඉල්ලීමට පෙර ෂෙල් විසින් ඒවා සියල්ලම අර්ථ නිරූපණය කළ යුතුය). ඔබ නව ෂෙල් ක්‍රියාවලි නිතිපතා ක්‍රියාත්මක කරන්නේ නම් මෙය සැලකිල්ලට ගන්න, උදාහරණයක් ලෙස:
# pressing key to open new terminal
# waiting for a few seconds before shell prompt finally appears.

ඒ හැර, ඔබට හැකි සරලම පෝරමය භාවිතා කළ හැකිය, එනම් පළමුව අන්වර්ථය සලකා බලන්න, පසුව ක්‍රියා කරන්න, පසුව ස්ක්‍රිප්ට් කරන්න.


5
අන්වර්ථ නාමයන් ද භාවිතා කළ sudoහැකිය. නමුත් මුලින්ම ඔබට අවශ්‍යයි alias sudo='sudo '.
මයිකල්

ස්ක්‍රිප්ට් එකක් ක්‍රියාත්මක කිරීමෙන් දෙබලක + ක්‍රියාත්මක වන කාලසීමාව සඳහා වැඩි කාලයක් මතකය පරිභෝජනය කරන බව සත්‍යයක් වන අතර, වර්තමාන කවචයේ මතකයට බොහෝ කේත පටවා තිබීම නිසා ඉදිරියට යන මතකය වැඩි ප්‍රමාණයක් පරිභෝජනය කරයි, බොහෝ විට කේත ගබඩා කිරීම සඳහා පමණි තරමක් කලාතුරකින් භාවිතා වේ.
ත්‍රිත්ව

2

මගේ නියමය මෙයයි:

  • අන්වර්ථ නාම - එක් විධානයක්, පරාමිතීන් නොමැත
  • කාර්යයන් - එක් විධානයකට පරාමිතීන් කිහිපයක්
  • ස්ක්‍රිප්ට් - විධාන කිහිපයක්, පරාමිතීන් නොමැත

1

බහු පරිශීලක (හෝ බහු සිසමින්) පරිසරයක, මම සෑම දෙයක් සඳහාම ස්ක්‍රිප්ට් භාවිතා කරමි, එය කෙටි 'ක්‍රියාත්මක යමක් ....' එතීමකින් අවසන් වුවද.

නිසැකවම, එය අන්වර්ථයකට හෝ ශ්‍රිතයකට වඩා තාක්‍ෂණිකව මන්දගාමී / අඩු කාර්යක්ෂමතාවයකින් යුක්ත වන නමුත් එය කිසි විටෙකත් වැදගත් නොවේ - සහ එය මඟට සපයා තිබේ නම්, ස්ක්‍රිප්ටයක් සැමවිටම ක්‍රියාත්මක වේ.

ඔබේ විශේෂාංගය ක්‍රෝන් වෙතින්, සුඩෝ හෝ එන්වී වැනි අඩු කරන ලද හෝ වෙනස් කරන ලද පරිසරයකින් ඇති දෙයක් ලෙස හැඳින්විය හැකිය, නැතහොත් පරිශීලකයා ඔබට වෙනත් කවචයක් භාවිතා කරයි - සියල්ලම හෝ අන්වර්ථයක් හෝ ශ්‍රිතයක් බිඳ දැමීමට ඉඩ ඇත.

ඔබට කාර්ය සාධන සංවේදී යමක් තිබේ නම්, එය විශේෂ අවස්ථාවක් ලෙස හසුරුවන්න, හෝ වඩා හොඳ නම්, වඩාත් ක්‍රියාකාරී ස්ක්‍රිප්ටින් භාෂාවෙන් නැවත ලිවීමට ප්‍රේරකයක් ලෙස සලකන්න.

අපි කතා කරන්නේ වෙනත් ස්ක්‍රිප්ට් වල පමණක් භාවිතා වන විශේෂාංග ගැන නම්, ඔබට සම්මත කවචයක් නිර්වචනය කිරීම සහ ක්‍රියාකාරී පුස්තකාල පිටපතක් ලිවීම ගැනද සලකා බැලිය හැකිය. මම අනෙක් සියලුම ස්ක්‍රිප්ට් වෙත යොමු කළෙමි.

ටී


0

තත්වයක් සඳහා උදාහරණයක් ඔබ අන්වර්ථයක් භාවිතා කිරීමට කැමති තැන.

මම මේ පරණ පශ්චාත් දන්නවා නමුත් මම තත්වයක් පෙන්වා කැමති පාහේ තිර රචනය සමග හෙවත් සංකලනයක් භාවිතා කිරීමට තිබූ අතර මම කෘත්යය භාවිත කිරීමට තීරණය කරලා තිබුණේ නැහැ.

මම තිර රචනය කර ~/.bin/කැඳවා setup: පහත සඳහන් කරන්නේ ඒ 1

  1. මාව එක්තරා නාමාවලියකට ගෙන එයි.
  2. විචල්යයන් කිහිපයක් අර්ථ දක්වයි.
  3. නාමාවලියෙහි තත්වය පිළිබඳ පණිවිඩ මුද්‍රණය කරයි. 2

කාරණය වන්නේ මම ධාවනය කරන්නේ නම් මට setup <project-name>එම විචල්‍යයන් නිර්වචනය නොවනු ඇති අතර මම කිසිසේත් නාමාවලිය වෙත නොපැමිණීමයි. හොඳම විසඳුම ලෙස මා සොයාගත් විසඳුම නම් මෙම ස්ක්‍රිප්ට් එක PATHඑකතු alias setup=". ~/.bin/setup"කර එකතු කිරීම ~/.bashrcහෝ ඕනෑම දෙයක් කිරීමයි.

සටහන්:

  1. මම මෙම කාර්යය සඳහා ස්ක්‍රිප්ට් එකක් භාවිතා කළ අතර එය ශ්‍රිතයක් නොව එය විශේෂයෙන් දිගු නිසා නොව මට එය සංස්කරණය කළ හැකි නිසාත්, සංස්කරණය භාවිතයෙන් පසු ගොනුව ප්‍රභව කිරීමට අවශ්‍ය නැති නිසාත් එහි භාවිතය නැවුම් කිරීමට අවශ්‍ය නම්.
  2. මගේ සියලු තිත් ලිපිගොනු නැවත පූරණය කිරීම සඳහා ස්ක්‍රිප්ට් එකක් නිර්මාණය කරන විට මට සමාන නඩුවක් ලැබුණි. 3
  1. ස්ක්‍රිප්ට් එක මගේ ඩොට්ෆයිල්ස් ගබඩාවේ ඇත .bin/.
  2. ස්ක්‍රිප්ට් ගැන : මම මෙම ස්ක්‍රිප්ටයට තර්කයක් ලබා දෙමි, එය මම උසස් ලෙස අර්ථ දක්වා ඇති ව්‍යාපෘතියේ නමකි. පසුව යම් csvගොනුවකට අනුව නිවැරදි ඩිරෙක්ටරියට මා ගෙන ඒමට ස්ක්‍රිප්ට් දනී . එය නිර්වචනය කරන විචල්යයන් එම නාමාවලියෙහි ඇති Makefile වෙතින් ලබා ගනී. එහි තිර රචනය පසුව ලකුණු ls -lසහ git statusඑහි වෙන්නේ මොනවාද කියලා මට පෙන්වන්න.
  3. එම ස්ක්‍රිප්ට් එක මගේ ඩොට්ෆයිල්ස් ගබඩාවේද .bin/ඇත.

1
හ්ම්, එය හුදෙක් ශ්‍රිතයක් විය යුතු අතර අන්වර්ථ-ස්ක්‍රිප්ට් සංයෝජනයක් නොවේ. (BTW, පරිසරයන් නැත "පරිසරය" අක්ෂර වින්යාස සහිතව ඇත "enviorments.")
ආදේශක

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

0

පිටපතක් ලිවිය යුත්තේ කවදාද?

ඔබට කවචය හැර වෙනත් මෙවලමකින් විධානය ක්‍රියාත්මක කිරීමට අවශ්‍ය වූ විට.

මෙයට vim (මට) ඇතුළත් වේ: ලිඛිත පෙරහන් සහ වෙනත් වැඩසටහන් ස්ක්‍රිප්ට් ලෙස තිබීම :%!my-filterනිසා, මගේ සංස්කාරකයෙන් වැඩසටහන හරහා ගොනුවක් පෙරීමට මට යමක් කළ හැකිය .

නම් my-filterශ්රිතයක් හෝ නොහොත් විය, බව හැකි වන්නේ නැහැ.

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.