Ubuntu Online, Fedora Online, Windows online emulator അല്ലെങ്കിൽ MAC OS ഓൺലൈൻ എമുലേറ്റർ എന്നിങ്ങനെയുള്ള ഞങ്ങളുടെ ഒന്നിലധികം സൗജന്യ ഓൺലൈൻ വർക്ക്സ്റ്റേഷനുകളിലൊന്ന് ഉപയോഗിച്ച് OnWorks സൗജന്യ ഹോസ്റ്റിംഗ് ദാതാവിൽ പ്രവർത്തിപ്പിക്കാവുന്ന zshmisc കമാൻഡ് ആണിത്.
പട്ടിക:
NAME
zshmisc - എല്ലാം പിന്നെ ചിലത്
SIMPLE കമാൻഡുകൾ & പൈപ്പ് ലൈനുകൾ
A ലഘുവായ കമാൻഡ് ഓപ്ഷണൽ പാരാമീറ്റർ അസൈൻമെന്റുകളുടെ ഒരു ശ്രേണിയാണ് പിന്തുടരുന്നത്
ശൂന്യമായി വേർതിരിക്കുന്ന വാക്കുകൾ, ഓപ്ഷണൽ റീഡയറക്ടുകൾ ഇടകലർത്തി. ഒരു വിവരണത്തിനായി
നിയമനം, തുടക്കം കാണുക zshparam(1).
ആദ്യ വാക്ക് എക്സിക്യൂട്ട് ചെയ്യേണ്ട കമാൻഡ് ആണ്, ശേഷിക്കുന്ന വാക്കുകൾ, ഉണ്ടെങ്കിൽ
കമാൻഡിലേക്കുള്ള ആർഗ്യുമെന്റുകൾ. ഒരു കമാൻഡ് നാമം നൽകിയാൽ, പാരാമീറ്റർ അസൈൻമെന്റുകൾ പരിഷ്കരിക്കും
കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ അതിന്റെ പരിസ്ഥിതി. ഒരു ലളിതമായ കമാൻഡിന്റെ മൂല്യം അതിന്റെതാണ്
എക്സിറ്റ് സ്റ്റാറ്റസ്, അല്ലെങ്കിൽ 128 കൂടാതെ ഒരു സിഗ്നൽ വഴി അവസാനിപ്പിക്കുകയാണെങ്കിൽ സിഗ്നൽ നമ്പർ. ഉദാഹരണത്തിന്,
എക്കോ ഫൂ
ആർഗ്യുമെന്റുകളുള്ള ഒരു ലളിതമായ കമാൻഡ് ആണ്.
A പൈപ്പ്ലൈൻ ഒന്നുകിൽ ഒരു ലളിതമായ കമാൻഡ്, അല്ലെങ്കിൽ രണ്ടോ അതിലധികമോ ലളിതമായ കമാൻഡുകളുടെ ഒരു ശ്രേണി
ഓരോ കമാൻഡും അടുത്തതിൽ നിന്ന് `` കൊണ്ട് വേർതിരിച്ചിരിക്കുന്നു|' അല്ലെങ്കിൽ '|&'. എവിടെയാണ് കമാൻഡുകൾ വേർതിരിച്ചിരിക്കുന്നത്
`|', ആദ്യ കമാൻഡിന്റെ സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ട് ന്റെ സ്റ്റാൻഡേർഡ് ഇൻപുട്ടുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു
അടുത്തത്. `|&' എന്നതിന്റെ ചുരുക്കെഴുത്താണ്2> & 1 |', ഇത് സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിനെയും ദിയെയും ബന്ധിപ്പിക്കുന്നു
അടുത്തതിന്റെ സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിലേക്കുള്ള കമാൻഡിന്റെ സ്റ്റാൻഡേർഡ് പിശക്. ഒരു പൈപ്പ്ലൈനിന്റെ മൂല്യം
പൈപ്പ് ലൈനിന് മുമ്പായി ` എന്നല്ലെങ്കിൽ അവസാന കമാൻഡിന്റെ മൂല്യമാണ്!' ഈ സാഹചര്യത്തിൽ
മൂല്യം അവസാന കമാൻഡിന്റെ മൂല്യത്തിന്റെ ലോജിക്കൽ വിപരീതമാണ്. ഉദാഹരണത്തിന്,
എക്കോ ഫൂ | sed 's/foo/bar/'
ഒരു പൈപ്പ്ലൈൻ ആണ്, അവിടെ ഔട്ട്പുട്ട് (`ഫൂആദ്യ കമാൻഡിന്റെ 'കൂടാതെ ഒരു പുതിയ വരി) പാസ്സാക്കും
രണ്ടാമത്തേതിന്റെ ഇൻപുട്ടിലേക്ക്.
ഒരു പൈപ്പ് ലൈനിന് മുമ്പായി `കൊപ്രോക്ക്', ഇത് ഒരു കോപ്രോസസ് ആയി നടപ്പിലാക്കുന്നു; ഒരു ടു-വേ പൈപ്പ് ആണ്
അതിനും പാരന്റ് ഷെല്ലിനുമിടയിൽ സ്ഥാപിച്ചു. ഷെല്ലിന് വായിക്കാനോ എഴുതാനോ കഴിയും
എന്ന മുഖേനയുള്ള കോപ്രോസസ്>&p' ഒപ്പം '<&p' റീഡയറക്ഷൻ ഓപ്പറേറ്റർമാർ അല്ലെങ്കിൽ കൂടെ 'അച്ചടിക്കുക -p' ഒപ്പം
`വായിക്കുക -p'. ഒരു പൈപ്പ് ലൈനിന് മുമ്പായി രണ്ട് ``കൊപ്രോക്ക്' ഒപ്പം '!'. ജോലി നിയന്ത്രണം ആണെങ്കിൽ
സജീവമായ, കോപ്രോസസ് ഇൻപുട്ടും ഔട്ട്പുട്ടും അല്ലാതെ ഒരു സാധാരണ ആയി കണക്കാക്കാം
പശ്ചാത്തല ജോലി.
A ഉപലിസ്റ്റ് ഒന്നുകിൽ ഒരൊറ്റ പൈപ്പ് ലൈൻ, അല്ലെങ്കിൽ രണ്ടോ അതിലധികമോ പൈപ്പ് ലൈനുകൾ വേർതിരിക്കുന്ന ഒരു ക്രമം
`&&' അല്ലെങ്കിൽ '||'. രണ്ട് പൈപ്പ് ലൈനുകൾ വേർതിരിക്കുകയാണെങ്കിൽ `&&', രണ്ടാമത്തെ പൈപ്പ്ലൈൻ എക്സിക്യൂട്ട് ചെയ്തു
ആദ്യത്തേത് വിജയിച്ചാൽ മാത്രം (ഒരു പൂജ്യം നില നൽകുന്നു). രണ്ട് പൈപ്പ്ലൈനുകൾ വേർതിരിക്കുകയാണെങ്കിൽ
`||', ആദ്യത്തേത് പരാജയപ്പെടുകയാണെങ്കിൽ മാത്രമേ രണ്ടാമത്തേത് നടപ്പിലാക്കുകയുള്ളൂ (പൂജ്യം ഇല്ലാത്ത അവസ്ഥ നൽകുന്നു). രണ്ടും
ഓപ്പറേറ്റർമാർക്ക് തുല്യ മുൻഗണനയുണ്ട്, അവ അസോസിയേറ്റീവ് ആയി അവശേഷിക്കുന്നു. സബ്ലിസ്റ്റിന്റെ മൂല്യം
അവസാനം നടപ്പിലാക്കിയ പൈപ്പ്ലൈനിന്റെ മൂല്യം. ഉദാഹരണത്തിന്,
dmesg | grep പാനിക് && അച്ചടിക്കുക അതെ
രണ്ട് പൈപ്പ്ലൈനുകൾ അടങ്ങുന്ന ഒരു സബ്ലിസ്റ്റ് ആണ്, രണ്ടാമത്തേത് ഒരു ലളിതമായ കമാൻഡ് ആയിരിക്കും
എങ്കിൽ മാത്രമേ നടപ്പിലാക്കൂ grep കമാൻഡ് പൂജ്യം നില നൽകുന്നു. ഇല്ലെങ്കിൽ, മൂല്യം
സബ്ലിസ്റ്റിന്റെ റിട്ടേൺ സ്റ്റാറ്റസ് ആണ്, അല്ലെങ്കിൽ അത് നൽകിയ സ്റ്റാറ്റസ് ആണ് അച്ചടിക്കുക (ഏതാണ്ട്
തീർച്ചയായും പൂജ്യം).
A പട്ടിക പൂജ്യമോ അതിലധികമോ സബ്ലിസ്റ്റുകളുടെ ഒരു ശ്രേണിയാണ്, അതിൽ ഓരോ സബ്ലിസ്റ്റും ` അവസാനിപ്പിച്ചിരിക്കുന്നു;',
`&', `&|', `&!', അല്ലെങ്കിൽ ഒരു പുതിയ ലൈൻ. ഈ ടെർമിനേറ്റർ അവസാനത്തേതിൽ നിന്ന് ഓപ്ഷണലായി ഒഴിവാക്കിയേക്കാം
ലിസ്റ്റ് ഒരു സങ്കീർണ്ണമായ കമാൻഡായി ` എന്നതിനുള്ളിൽ ദൃശ്യമാകുമ്പോൾ ലിസ്റ്റിലെ സബ്ലിസ്റ്റ് ചെയ്യുക(...)' അല്ലെങ്കിൽ '{...}'.
ഒരു സബ്ലിസ്റ്റ് അവസാനിപ്പിക്കുമ്പോൾ `;'അല്ലെങ്കിൽ ന്യൂലൈൻ, ഷെൽ അത് പൂർത്തിയാകുന്നതിന് മുമ്പ് കാത്തിരിക്കുന്നു
അടുത്ത സബ്ലിസ്റ്റ് നടപ്പിലാക്കുന്നു. ഒരു സബ്ലിസ്റ്റ് അവസാനിപ്പിച്ചാൽ `&', `&|', അല്ലെങ്കിൽ '&!', ഷെൽ
പശ്ചാത്തലത്തിൽ അതിലെ അവസാന പൈപ്പ്ലൈൻ നിർവ്വഹിക്കുന്നു, അത് പൂർത്തിയാകുന്നതുവരെ കാത്തിരിക്കരുത്
(പശ്ചാത്തലത്തിൽ മുഴുവൻ സബ്ലിസ്റ്റും എക്സിക്യൂട്ട് ചെയ്യുന്ന മറ്റ് ഷെല്ലുകളിൽ നിന്നുള്ള വ്യത്യാസം ശ്രദ്ധിക്കുക).
പശ്ചാത്തലമുള്ള ഒരു പൈപ്പ്ലൈൻ പൂജ്യത്തിന്റെ നില നൽകുന്നു.
കൂടുതൽ പൊതുവായി, ഏതെങ്കിലും ഷെൽ കമാൻഡുകളുടെ ഒരു ഗണമായി ഒരു ലിസ്റ്റ് കാണാവുന്നതാണ്
ചുവടെയുള്ള സങ്കീർണ്ണമായ കമാൻഡുകൾ; 'ലിസ്റ്റ്' എന്ന വാക്ക് പിന്നീട് ദൃശ്യമാകുന്നിടത്തെല്ലാം ഇത് സൂചിപ്പിക്കുന്നു
വിവരണങ്ങൾ. ഉദാഹരണത്തിന്, ഒരു ഷെൽ ഫംഗ്ഷനിലെ കമാൻഡുകൾ ഒരു പ്രത്യേക ലിസ്റ്റ് ഉണ്ടാക്കുന്നു.
പ്രീകമാൻഡ് മോഡിഫയറുകൾ
ഒരു ലളിതമായ കമാൻഡിന് മുമ്പായി a പ്രീകമാൻഡ് മാറ്റം, അത് എങ്ങനെ മാറ്റും
കമാൻഡ് വ്യാഖ്യാനിക്കപ്പെടുന്നു. ഈ മോഡിഫയറുകൾ ഒഴികെയുള്ള ഷെൽ ബിൽഡിൻ കമാൻഡുകളാണ്
ശരിയല്ല സംവരണം ചെയ്ത വാക്കാണ്.
- ഒരു ` ഉപയോഗിച്ച് കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നു-' അതിന് മുൻകൈയെടുത്തു argv[0] സ്ട്രിംഗ്.
ബിൽഡിൻ
കമാൻഡ് വാക്ക് ഒരു ഷെൽ എന്നതിലുപരി ഒരു ബിൽട്ടിൻ കമാൻഡിന്റെ പേരായി എടുക്കുന്നു
ഫംഗ്ഷൻ അല്ലെങ്കിൽ ബാഹ്യ കമാൻഡ്.
കമാൻഡ് [ -പിവിവി ]
കമാൻഡ് വാക്ക് ഒരു ബാഹ്യ കമാൻഡിന്റെ പേരായി എടുക്കുന്നു, പകരം a
ഷെൽ ഫംഗ്ഷൻ അല്ലെങ്കിൽ ബിൽറ്റ്ഇൻ. എങ്കിൽ POSIX_BUILTINS ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു, ബിൽഡിനുകൾ ചെയ്യും
നടപ്പിലാക്കുകയും ചെയ്യും, എന്നാൽ അവയുടെ ചില പ്രത്യേക ഗുണങ്ങൾ അടിച്ചമർത്തപ്പെടുന്നു. ദി -p പതാക
എന്നതിന് പകരം ഒരു ഡിഫോൾട്ട് പാത്ത് തിരയുന്നതിന് കാരണമാകുന്നു $പാത. കൂടെ -v പതാക,
കമാൻഡ് സമാനമാണ് എവിടെ നിന്ന് ഒപ്പം കൂടെ -V, ഇത് തുല്യമാണ് എവിടെ നിന്ന് -v.
exec [ -cl ] [ -a argv0 ]
താഴെ പറയുന്ന കമാൻഡ് ഏതെങ്കിലും ആർഗ്യുമെന്റുകൾക്കൊപ്പം കറണ്ടിന്റെ സ്ഥാനത്ത് പ്രവർത്തിക്കുന്നു
ഒരു ഉപ-പ്രക്രിയ എന്നതിലുപരി പ്രോസസ്സ്. ഷെൽ ഫോർക്ക് ചെയ്യുന്നില്ല, അത് മാറ്റിസ്ഥാപിക്കുന്നു.
ഷെൽ വിളിക്കുന്നില്ല ട്രാപെക്സിറ്റ്, അല്ലെങ്കിൽ അത് ഉറവിടമല്ല zlogout ഫയലുകൾ. ഓപ്ഷനുകൾ
മറ്റ് ഷെല്ലുകളുമായുള്ള അനുയോജ്യതയ്ക്കായി നൽകിയിരിക്കുന്നു.
ദി -c ഓപ്ഷൻ പരിസ്ഥിതിയെ മായ്ക്കുന്നു.
ദി -l എന്നതിന് തുല്യമാണ് ഓപ്ഷൻ - പ്രീകമാൻഡ് മോഡിഫയർ, മാറ്റിസ്ഥാപിക്കുന്നതിന്
ഒരു ലോഗിൻ ഷെല്ലായി കമാൻഡ്; a ഉപയോഗിച്ച് കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യുന്നു - അതിന്റെ മുൻകൂർ argv[0]
സ്ട്രിംഗ്. കൂടെ ഉപയോഗിച്ചാൽ ഈ പതാകയ്ക്ക് യാതൊരു ഫലവുമില്ല -a ഓപ്ഷൻ.
ദി -a എന്ന ഓപ്ഷൻ വ്യക്തമായി വ്യക്തമാക്കാൻ ഉപയോഗിക്കുന്നു argv[0] സ്ട്രിംഗ് (ഇതിന്റെ പേര്
കമാൻഡ് പ്രോസസ്സ് തന്നെ കാണുന്നതുപോലെ) മാറ്റിസ്ഥാപിക്കുന്ന കമാൻഡ് ഉപയോഗിക്കേണ്ടത്
എന്നതിനായി ഒരു മൂല്യം സജ്ജീകരിക്കുന്നതിന് നേരിട്ട് തുല്യമാണ് ARGV0 എൻവയോൺമെന്റ് വേരിയബിൾ.
ശരിയല്ല
പദങ്ങളിലൊന്നും അക്ഷരത്തെറ്റ് തിരുത്തൽ നടത്തിയിട്ടില്ല. ഇത് എല്ലാറ്റിനും മുമ്പായി ദൃശ്യമാകണം
മറ്റേതെങ്കിലും പ്രീകമാൻഡ് മോഡിഫയർ, ഏതെങ്കിലും പാഴ്സിംഗിന് മുമ്പ് അത് ഉടനടി വ്യാഖ്യാനിക്കപ്പെടുന്നു
ചെയ്തു. നോൺ-ഇന്ററാക്ടീവ് ഷെല്ലുകളിൽ ഇതിന് യാതൊരു ഫലവുമില്ല.
നോഗ്ലോബ് ഫയലിന്റെ പേര് സൃഷ്ടിക്കൽ (ഗ്ലോബിംഗ്) ഒരു പദത്തിലും നടപ്പിലാക്കില്ല.
കോംപ്ലക്സ് കമാൻഡുകൾ
A സങ്കീർണ്ണമായ കമാൻഡ് zsh-ൽ ഇനിപ്പറയുന്നവയിൽ ഒന്നാണ്:
if പട്ടിക അപ്പോള് പട്ടിക [ എലിഫ് പട്ടിക അപ്പോള് പട്ടിക ] ... [ മറ്റാരെങ്കിലും പട്ടിക ] fi
ദി if പട്ടിക എക്സിക്യൂഷൻ ചെയ്തു, അത് സീറോ എക്സിറ്റ് സ്റ്റാറ്റസ് നൽകുന്നുവെങ്കിൽ, the അപ്പോള് പട്ടിക is
വധിച്ചു. അല്ലെങ്കിൽ, ദി എലിഫ് പട്ടിക നിർവ്വഹിക്കുന്നു, അതിന്റെ നില പൂജ്യമാണെങ്കിൽ, അപ്പോള്
പട്ടിക നിർവ്വഹിക്കുന്നു. ഓരോന്നാണെങ്കിൽ എലിഫ് പട്ടിക പൂജ്യമല്ലാത്ത നില നൽകുന്നു, മറ്റാരെങ്കിലും പട്ടിക is
നടപ്പിലാക്കി.
വേണ്ടി പേര് ... [ in വാക്ക് ...] കാലാവധി do പട്ടിക ചെയ്തു
എവിടെ കാലാവധി കുറഞ്ഞത് ഒരു പുതിയ ലൈനെങ്കിലും അല്ലെങ്കിൽ ;. പട്ടിക വികസിപ്പിക്കുക വാക്ക്s, ഒപ്പം സജ്ജമാക്കുക
പാരാമീറ്റർ പേര് ഓരോരുത്തർക്കും അതാകട്ടെ, നിർവ്വഹിക്കുന്നു പട്ടിക ഓരോ തവണയും. എങ്കിൽ in വാക്ക്
ഒഴിവാക്കിയിരിക്കുന്നു, പകരം പൊസിഷണൽ പാരാമീറ്ററുകൾ ഉപയോഗിക്കുക വാക്ക്s.
ഒന്നിലധികം പരാമീറ്ററുകൾ പേര് ലിസ്റ്റിന് മുമ്പായി പ്രത്യക്ഷപ്പെടാം വാക്ക്എസ്. എങ്കിൽ N പേര്s ആണ്
നൽകിയിരിക്കുന്നു, ലൂപ്പിന്റെ ഓരോ നിർവ്വഹണത്തിലും അടുത്തത് N വാക്ക്എന്നിവയ്ക്ക് നിയോഗിക്കപ്പെട്ടിരിക്കുന്നു
അനുബന്ധ പാരാമീറ്ററുകൾ. കൂടുതൽ ഉണ്ടെങ്കിൽ പേര്ശേഷിക്കുന്നതിനേക്കാൾ s വാക്ക്s, ദി
ശേഷിക്കുന്ന പരാമീറ്ററുകൾ ഓരോന്നും ശൂന്യമായ സ്ട്രിംഗിലേക്ക് സജ്ജീകരിച്ചിരിക്കുന്നു. ലൂപ്പിന്റെ നിർവ്വഹണം അവസാനിക്കുന്നു
ശേഷിക്കാത്തപ്പോൾ വാക്ക് ആദ്യത്തേത് ഏൽപ്പിക്കാൻ പേര്. അത് മാത്രമേ സാധ്യമാകൂ
വേണ്ടി in ആദ്യത്തേതായി പ്രത്യക്ഷപ്പെടാൻ പേര് പട്ടികയിൽ, അല്ലെങ്കിൽ അത് അടയാളപ്പെടുത്തലായി കണക്കാക്കും
പട്ടികയുടെ അവസാനം.
വേണ്ടി (( [expr1] ; [expr2] ; [expr3] )) do പട്ടിക ചെയ്തു
ഗണിത പദപ്രയോഗം expr1 ആദ്യം മൂല്യനിർണ്ണയം നടത്തുന്നു (വിഭാഗം `അങ്കഗണിതം കാണുക
മൂല്യനിർണ്ണയം'). ഗണിത പദപ്രയോഗം expr2 അത് വരെ ആവർത്തിച്ച് വിലയിരുത്തപ്പെടുന്നു
പൂജ്യമായി വിലയിരുത്തുന്നു, പൂജ്യമല്ലാത്തപ്പോൾ, പട്ടിക നിർവ്വഹിക്കുകയും ഗണിത പദപ്രയോഗം നടത്തുകയും ചെയ്യുന്നു
expr3 വിലയിരുത്തി. ഏതെങ്കിലും പദപ്രയോഗം ഒഴിവാക്കിയാൽ, അത് വിലയിരുത്തുന്നത് പോലെയാണ് പെരുമാറുന്നത്
1 ലേക്ക്.
സമയത്ത് പട്ടിക do പട്ടിക ചെയ്തു
എക്സിക്യൂട്ട് ചെയ്യുക do പട്ടിക അതുവരെ സമയത്ത് പട്ടിക സീറോ എക്സിറ്റ് സ്റ്റാറ്റസ് നൽകുന്നു.
വരുവോളം പട്ടിക do പട്ടിക ചെയ്തു
എക്സിക്യൂട്ട് ചെയ്യുക do പട്ടിക എത്ര കാലത്തോളം വരുവോളം പട്ടിക പൂജ്യമല്ലാത്ത എക്സിറ്റ് സ്റ്റാറ്റസ് നൽകുന്നു.
ആവർത്തിച്ച് വാക്ക് do പട്ടിക ചെയ്തു
വാക്ക് വിപുലീകരിക്കുകയും ഒരു ഗണിത പദപ്രയോഗമായി പരിഗണിക്കുകയും ചെയ്യുന്നു, അത് a ആയി വിലയിരുത്തണം
അക്കം n. പട്ടിക തുടർന്ന് നിർവ്വഹിക്കുന്നു n തവണ.
ദി ആവർത്തിച്ച് ഷെൽ എമുലേറ്റിംഗ് മോഡിൽ ആരംഭിക്കുമ്പോൾ സിന്റാക്സ് ഡിഫോൾട്ടായി പ്രവർത്തനരഹിതമാകും
മറ്റൊരു ഷെൽ. ' എന്ന കമാൻഡ് ഉപയോഗിച്ച് ഇത് പ്രവർത്തനക്ഷമമാക്കാംപ്രവർത്തനക്ഷമമാക്കുക -r ആവർത്തിച്ച്'
കേസ് വാക്ക് in [[(] പാറ്റേൺ [ | പാറ്റേൺ ]... ) പട്ടിക (;;|;&|;|)]... സി
എക്സിക്യൂട്ട് ചെയ്യുക പട്ടിക ആദ്യത്തേതുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു പാറ്റേൺ അത് പൊരുത്തപ്പെടുന്നു വാക്ക്, എന്തെങ്കിലും ഉണ്ടെങ്കിൽ. ദി
പാറ്റേണുകളുടെ രൂപവും ഫയൽനാമം സൃഷ്ടിക്കുന്നതിന് ഉപയോഗിക്കുന്നതുതന്നെയാണ്. കാണുക
വിഭാഗം `ഫയൽനാമം ജനറേഷൻ'.
അതല്ലാതെ ശ്രദ്ധിക്കുക SH_GLOB ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു, മുഴുവൻ പാറ്റേണും
ഇതരമാർഗങ്ങളെ ഷെൽ ഒരു കൂട്ടം പാറ്റേണുകൾക്ക് തുല്യമായി കണക്കാക്കുന്നു
പരാൻതീസിസുകൾ, പരാൻതീസിസുകളിലും ലംബങ്ങളിലും വൈറ്റ് സ്പേസ് ദൃശ്യമാകുമെങ്കിലും
ബാർ, ആ പോയിന്റുകളിലെ പാറ്റേണിൽ നിന്ന് നീക്കം ചെയ്യപ്പെടും. വൈറ്റ് സ്പേസ് പ്രത്യക്ഷപ്പെടാം
പാറ്റേണിൽ മറ്റെവിടെയെങ്കിലും; ഇത് അഴിച്ചിട്ടില്ല. എങ്കിൽ SH_GLOB ഓപ്ഷൻ സജ്ജമാക്കി, അങ്ങനെ
ഒരു ഓപ്പണിംഗ് പരാന്തീസിസ് കേസിന്റെ ഭാഗമായി അവ്യക്തമായി കണക്കാക്കാം
വാക്യഘടനയിൽ, പദപ്രയോഗം പ്രത്യേക പദങ്ങളാക്കി പാഴ്സ് ചെയ്യുകയും ഇവയെ ഇതായി കണക്കാക്കുകയും ചെയ്യുന്നു
കർശനമായ ബദലുകൾ (മറ്റ് ഷെല്ലുകളിലേതുപോലെ).
എങ്കില് പട്ടിക അത് നടപ്പിലാക്കുന്നത് അവസാനിപ്പിക്കുന്നു ;& അതിലും കൂടുതൽ ;;, ഇനിപ്പറയുന്നവ
പട്ടികയും നടപ്പിലാക്കുന്നു. ഇനിപ്പറയുന്ന ലിസ്റ്റിന്റെ ടെർമിനേറ്ററിനുള്ള നിയമം ;;, ;& or
;| അല്ലാതെ പ്രയോഗിക്കുന്നു സി എത്തി.
എങ്കില് പട്ടിക അത് നടപ്പിലാക്കുന്നത് അവസാനിപ്പിക്കുന്നു ;| ഷെൽ സ്കാൻ ചെയ്യുന്നത് തുടരുന്നു
പാറ്റേൺഅടുത്ത മത്സരത്തിനായി തിരയുന്നു, അനുബന്ധമായത് നടപ്പിലാക്കുന്നു പട്ടിക, കൂടാതെ അപേക്ഷിക്കുന്നു
അനുബന്ധ ടെർമിനേറ്ററിനുള്ള നിയമം ;;, ;& or ;|. അതല്ല വാക്ക് അല്ല
വീണ്ടും വികസിപ്പിച്ചു; എല്ലാം ബാധകമാണ് പാറ്റേൺകൾ അതേ ഉപയോഗിച്ചാണ് പരീക്ഷിക്കുന്നത് വാക്ക്.
തെരഞ്ഞെടുക്കുക പേര് [ in വാക്ക് ... കാലാവധി ] do പട്ടിക ചെയ്തു
എവിടെ കാലാവധി ഒന്നോ അതിലധികമോ ന്യൂലൈൻ അല്ലെങ്കിൽ ; അവസാനിപ്പിക്കാൻ വാക്ക്എസ്. സെറ്റ് പ്രിന്റ് ചെയ്യുക
വാക്ക്s, ഓരോന്നിനും മുമ്പായി ഒരു സംഖ്യ. എങ്കിൽ in വാക്ക് ഒഴിവാക്കിയിരിക്കുന്നു, പൊസിഷണൽ ഉപയോഗിക്കുക
പരാമീറ്ററുകൾ. ദി പ്രോംപ്റ്റ്3 പ്രോംപ്റ്റ് പ്രിന്റ് ചെയ്യുകയും ലൈൻ എഡിറ്ററിൽ നിന്ന് ഒരു ലൈൻ വായിക്കുകയും ചെയ്യുന്നു
ഷെൽ ഇന്ററാക്ടീവ് ആണെങ്കിൽ, അത് സജീവമാണെങ്കിൽ, അല്ലെങ്കിൽ സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്. ഇത് എങ്കിൽ
വരിയിൽ ലിസ്റ്റ് ചെയ്ത ഒന്നിന്റെ നമ്പർ അടങ്ങിയിരിക്കുന്നു വാക്ക്s, പിന്നെ പരാമീറ്റർ പേര് is
എന്നതിലേക്ക് സജ്ജമാക്കുക വാക്ക് ഈ സംഖ്യയുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. ഈ വരി ശൂന്യമാണെങ്കിൽ, തിരഞ്ഞെടുക്കൽ
ലിസ്റ്റ് വീണ്ടും അച്ചടിച്ചു. അല്ലെങ്കിൽ, പരാമീറ്ററിന്റെ മൂല്യം പേര് അസാധുവായി സജ്ജീകരിച്ചിരിക്കുന്നു.
സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിൽ നിന്ന് വായിച്ച വരിയുടെ ഉള്ളടക്കങ്ങൾ പാരാമീറ്ററിൽ സംരക്ഷിക്കപ്പെടുന്നു മറുപടി.
പട്ടിക ഒരു ബ്രേക്ക് അല്ലെങ്കിൽ എൻഡ്-ഓഫ്-ഫയൽ നേരിടുന്നതുവരെ ഓരോ സെലക്ഷനും എക്സിക്യൂട്ട് ചെയ്യുന്നു.
( പട്ടിക )
നിർവ്വഹിക്കുക പട്ടിക ഒരു ഉപഷെല്ലിൽ. സ്ഥാപിച്ച കെണികൾ കെണി ബിൽഡിൻ അവയിലേക്ക് പുനഃസജ്ജീകരിച്ചിരിക്കുന്നു
എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ ഡിഫോൾട്ട് മൂല്യങ്ങൾ പട്ടിക.
{ പട്ടിക }
നിർവ്വഹിക്കുക പട്ടിക.
{ ശ്രമിക്കുക-ലിസ്റ്റ് } എല്ലായിപ്പോഴും { എപ്പോഴും-ലിസ്റ്റ് }
ആദ്യം എക്സിക്യൂട്ട് ചെയ്യുക ശ്രമിക്കുക-ലിസ്റ്റ്. പിശകുകൾ പരിഗണിക്കാതെ, അല്ലെങ്കിൽ ഇടവേള, തുടരുക, അഥവാ മടക്കം
ഉള്ളിൽ നേരിട്ട കമാൻഡുകൾ ശ്രമിക്കുക-ലിസ്റ്റ്, നടപ്പിലാക്കുക എപ്പോഴും-ലിസ്റ്റ്. അപ്പോൾ വധശിക്ഷ
യുടെ നിർവ്വഹണത്തിന്റെ ഫലമായി തുടരുന്നു ശ്രമിക്കുക-ലിസ്റ്റ്; മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, എന്തെങ്കിലും തെറ്റ്,
or ഇടവേള, തുടരുക, അഥവാ മടക്കം കമാൻഡ് സാധാരണ രീതിയിലാണ് കൈകാര്യം ചെയ്യുന്നത്
എപ്പോഴും-ലിസ്റ്റ് ഹാജരായിരുന്നില്ല. കോഡിന്റെ രണ്ട് ഭാഗങ്ങളെ `ശ്രമിക്കുക' എന്ന് വിളിക്കുന്നു
തടയുക', 'എപ്പോഴും തടയുക'.
ഓപ്ഷണൽ ന്യൂലൈനുകളോ അർദ്ധവിരാമങ്ങളോ ന് ശേഷം പ്രത്യക്ഷപ്പെടാം എല്ലായിപ്പോഴും; എന്നിരുന്നാലും, അത് ശ്രദ്ധിക്കുക
അവര് ചിലപ്പോള് അല്ല മുമ്പത്തെ ക്ലോസിംഗ് ബ്രേസിനുമിടയിൽ ദൃശ്യമാകും എല്ലായിപ്പോഴും.
ഈ സന്ദർഭത്തിലെ ഒരു 'പിശക്' എന്നത് വാക്യഘടന പിശക് പോലെയുള്ള ഒരു അവസ്ഥയാണ്
നിലവിലെ ഫംഗ്ഷൻ, സ്ക്രിപ്റ്റ് അല്ലെങ്കിൽ ലിസ്റ്റിന്റെ എക്സിക്യൂഷൻ നിർത്തലാക്കാനുള്ള ഷെൽ. വാക്യഘടന പിശകുകൾ
ഷെൽ പാഴ്സ് ചെയ്യുമ്പോൾ കോഡ് ഉണ്ടാകരുത് എപ്പോഴും-ലിസ്റ്റ് ആയിരിക്കാൻ
വധിച്ചു. ഉദാഹരണത്തിന്, തെറ്റായി നിർമ്മിച്ചത് if തടയുക ശ്രമിക്കുക-ലിസ്റ്റ് കാരണമാകും
പാഴ്സിംഗ് സമയത്ത് ഷെൽ അലസിപ്പിക്കും, അങ്ങനെ എപ്പോഴും-ലിസ്റ്റ് എക്സിക്യൂട്ട് ചെയ്യില്ല, അതേസമയം
പോലുള്ള തെറ്റായ ഒരു പകരം വയ്ക്കൽ ${*foo*} ശേഷം, ഒരു റൺ-ടൈം പിശകിന് കാരണമാകും
ഏത് എപ്പോഴും-ലിസ്റ്റ് നടപ്പിലാക്കും.
പ്രത്യേക പൂർണ്ണസംഖ്യ വേരിയബിൾ ഉപയോഗിച്ച് ഒരു പിശക് അവസ്ഥ പരിശോധിക്കാനും പുനഃസജ്ജമാക്കാനും കഴിയും
TRY_BLOCK_ERROR. പുറത്ത് ഒരു എപ്പോഴും-ലിസ്റ്റ് മൂല്യം അപ്രസക്തമാണ്, പക്ഷേ അത്
ലേക്ക് ആരംഭിച്ചത് -1. ഉള്ളിൽ എപ്പോഴും-ലിസ്റ്റ്, ൽ ഒരു പിശക് സംഭവിച്ചാൽ മൂല്യം 1 ആണ്
ശ്രമിക്കുക-ലിസ്റ്റ്, വേറെ 0. എങ്കിൽ TRY_BLOCK_ERROR സമയത്ത് 0 ആയി സജ്ജീകരിച്ചിരിക്കുന്നു എപ്പോഴും-ലിസ്റ്റ്, പിശക്
മൂലമുണ്ടാകുന്ന അവസ്ഥ ശ്രമിക്കുക-ലിസ്റ്റ് പുനഃസജ്ജമാക്കി, ഷെൽ എക്സിക്യൂഷൻ സാധാരണയായി തുടരുന്നു
അവസാനിച്ചതിന് ശേഷം എപ്പോഴും-ലിസ്റ്റ്. ഈ സമയത്ത് മൂല്യം മാറ്റുന്നു ശ്രമിക്കുക-ലിസ്റ്റ് ഉപയോഗപ്രദമല്ല
(ഇത് ഒരു എൻക്ലോസിംഗിന്റെ ഭാഗമല്ലെങ്കിൽ എല്ലായിപ്പോഴും ബ്ലോക്ക്).
പരിഗണിക്കാതെ TRY_BLOCK_ERROR, അവസാനിച്ചതിന് ശേഷം എപ്പോഴും-ലിസ്റ്റ് സാധാരണ ഷെൽ നില
$? എന്നതിൽ നിന്ന് തിരികെ ലഭിച്ച മൂല്യമാണ് ശ്രമിക്കുക-ലിസ്റ്റ്. ഉണ്ടായിരുന്നെങ്കിൽ ഇത് പൂജ്യമല്ല
പിശക്, എങ്കിൽ പോലും TRY_BLOCK_ERROR പൂജ്യമായി സജ്ജീകരിച്ചു.
ഇനിപ്പറയുന്നവ നൽകിയിരിക്കുന്ന കോഡ് നിർവ്വഹിക്കുന്നു, അതുണ്ടാക്കുന്ന പിശകുകൾ അവഗണിച്ചു. ഇതൊരു
എയിൽ എക്സിക്യൂട്ട് ചെയ്തുകൊണ്ട് കോഡ് പരിരക്ഷിക്കുന്നതിനുള്ള സാധാരണ കൺവെൻഷനു പകരമായി
ഉപഷെൽ.
{
# കോഡ് ഏത് കഴിയുക കാരണം an പിശക്
} എല്ലായിപ്പോഴും {
# ഈ കോഡ് is വധിച്ചു പരിഗണിക്കാതെ of The പിശക്.
(( TRY_BLOCK_ERROR = 0 ))
}
# ദി പിശക് കണ്ടീഷൻ ഉണ്ട് ആകുമായിരുന്നു പുന .സജ്ജമാക്കുക.
An പുറത്ത് കമാൻഡ് (അല്ലെങ്കിൽ എ മടക്കം a യുടെ ഏറ്റവും പുറത്തുള്ള പ്രവർത്തന തലത്തിൽ കമാൻഡ് നടപ്പിലാക്കുന്നു
സ്ക്രിപ്റ്റ്) ൽ നേരിട്ടു ശ്രമിക്കുക-ലിസ്റ്റ് ചെയ്യുന്നവൻ അല്ല യുടെ നിർവ്വഹണത്തിന് കാരണമാകുന്നു എപ്പോഴും-ലിസ്റ്റ്.
പകരം, ഷെൽ എന്തെങ്കിലും കഴിഞ്ഞാൽ ഉടൻ പുറത്തുകടക്കുന്നു പുറത്ത് ട്രാപ്പ് എക്സിക്യൂട്ട് ചെയ്തു.
ഫംഗ്ഷൻ വാക്ക് ... [ () ] [ കാലാവധി ] { പട്ടിക }
വാക്ക് ... () [ കാലാവധി ] { പട്ടിക }
വാക്ക് ... () [ കാലാവധി ] കമാൻഡ്
എവിടെ കാലാവധി ഒന്നോ അതിലധികമോ ന്യൂലൈൻ അല്ലെങ്കിൽ ;. റഫറൻസ് ചെയ്യുന്ന ഒരു ഫംഗ്ഷൻ നിർവചിക്കുക
ഏതെങ്കിലും ഒന്ന് വാക്ക്. സാധാരണയായി, ഒന്ന് മാത്രം വാക്ക് നല്കിയിട്ടുണ്ട്; ഒന്നിലധികം വാക്ക്കൾ സാധാരണമാണ്
കെണികൾ സ്ഥാപിക്കാൻ മാത്രം ഉപയോഗപ്രദമാണ്. ഫംഗ്ഷന്റെ ശരീരമാണ് പട്ടിക ഇടയിൽ {
ഒപ്പം }. "പ്രവർത്തനങ്ങൾ" എന്ന വിഭാഗം കാണുക.
ഓപ്ഷൻ ആണെങ്കിൽ SH_GLOB മറ്റ് ഷെല്ലുകളുമായുള്ള അനുയോജ്യതയ്ക്കായി സജ്ജീകരിച്ചിരിക്കുന്നു, തുടർന്ന് വൈറ്റ്സ്പേസ്
ഒരു സിംഗിൾ ഉള്ളപ്പോൾ ഇടത് വലത് പരാൻതീസിസുകൾക്കിടയിൽ പ്രത്യക്ഷപ്പെടാം വാക്ക്;
അല്ലെങ്കിൽ, പരാൻതീസിസുകൾ അതിൽ ഒരു ഗ്ലോബിംഗ് പാറ്റേൺ രൂപപ്പെടുത്തുന്നതായി കണക്കാക്കും
കേസ്.
മുകളിലുള്ള ഏതെങ്കിലും ഫോമിൽ, ഫംഗ്ഷൻ ബോഡിക്ക് പുറത്ത് ഒരു റീഡയറക്ഷൻ ദൃശ്യമാകാം
ഉദാഹരണം
func() { ... } 2> & 1
റീഡയറക്ഷൻ ഫംഗ്ഷനോടൊപ്പം സംഭരിക്കുകയും ഫംഗ്ഷൻ ഉള്ളപ്പോഴെല്ലാം പ്രയോഗിക്കുകയും ചെയ്യുന്നു
വധിച്ചു. റീഡയറക്ഷനിലെ ഏതെങ്കിലും വേരിയബിളുകൾ ഫംഗ്ഷൻ പോയിന്റിൽ വിപുലീകരിക്കപ്പെടുന്നു
എക്സിക്യൂട്ട് ചെയ്യപ്പെടുന്നു, പക്ഷേ ഫംഗ്ഷൻ പരിധിക്ക് പുറത്ത്.
കാലം [ പൈപ്പ്ലൈൻ ]
ദി പൈപ്പ്ലൈൻ എക്സിക്യൂട്ട് ചെയ്തു, സ്റ്റാൻഡേർഡ് പിശകിൽ സമയ സ്ഥിതിവിവരക്കണക്കുകൾ റിപ്പോർട്ട് ചെയ്യുന്നു
വ്യക്തമാക്കിയ രൂപത്തിൽ TIMEFMT പരാമീറ്റർ. എങ്കിൽ പൈപ്പ്ലൈൻ ഒഴിവാക്കിയിരിക്കുന്നു, അച്ചടിക്കുക
ഷെൽ പ്രക്രിയയെയും അതിന്റെ കുട്ടികളെയും കുറിച്ചുള്ള സ്ഥിതിവിവരക്കണക്കുകൾ.
[[ exp ]]
സോപാധികമായ പദപ്രയോഗം വിലയിരുത്തുന്നു exp അതാണെങ്കിൽ സീറോ എക്സിറ്റ് സ്റ്റാറ്റസ് തിരികെ നൽകുക
സത്യം. എന്നതിന്റെ വിവരണത്തിന് `കണ്ടീഷണൽ എക്സ്പ്രഷനുകൾ' എന്ന വിഭാഗം കാണുക exp.
ഏകാന്തരക്രമത്തിൽ ഫോമുകൾ വേണ്ടി കോംപ്ലക്സ് കമാൻഡുകൾ
zsh-ന്റെ പല സങ്കീർണ്ണ കമാൻഡുകൾക്കും ഇതര രൂപങ്ങളുണ്ട്. ഇവ നിലവാരമില്ലാത്തവയാണ്
പരിചയസമ്പന്നരായ ഷെൽ പ്രോഗ്രാമർമാർക്ക് പോലും ഇത് വ്യക്തമാകില്ല; അവ ഉപയോഗിക്കാൻ പാടില്ല
എവിടെയും ഷെൽ കോഡിന്റെ പോർട്ടബിലിറ്റി ഒരു ആശങ്കയാണ്.
താഴെയുള്ള ഹ്രസ്വ പതിപ്പുകൾ എങ്കിൽ മാത്രമേ പ്രവർത്തിക്കൂ ഉപലിസ്റ്റ് എന്ന രൂപത്തിലാണ്{ പട്ടിക }' അല്ലെങ്കിൽ എങ്കിൽ
SHORT_LOOPS ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു. വേണ്ടി if, സമയത്ത് ഒപ്പം വരുവോളം കമാൻഡുകൾ, ഈ രണ്ട് സാഹചര്യങ്ങളിലും
ലൂപ്പിന്റെ ടെസ്റ്റ് ഭാഗവും ഉചിതമായി വേർതിരിച്ചിരിക്കണം, ഉദാഹരണത്തിന് `[[ ... ]]' അല്ലെങ്കിൽ '(( ...
))', അല്ലെങ്കിൽ പരീക്ഷയുടെ അവസാനം തിരിച്ചറിയില്ല. വേണ്ടി വേണ്ടി, ആവർത്തിച്ച്, കേസ് ഒപ്പം
തെരഞ്ഞെടുക്കുക കമാൻഡുകൾ ആർഗ്യുമെന്റുകൾക്ക് അത്തരം പ്രത്യേക രൂപമൊന്നും ആവശ്യമില്ല, എന്നാൽ മറ്റൊന്ന്
അവസ്ഥ (പ്രത്യേക രൂപം ഉപലിസ്റ്റ് അല്ലെങ്കിൽ ഉപയോഗം SHORT_LOOPS ഓപ്ഷൻ) ഇപ്പോഴും ബാധകമാണ്.
if പട്ടിക { പട്ടിക } [ എലിഫ് പട്ടിക { പട്ടിക } ] ... [ മറ്റാരെങ്കിലും { പട്ടിക } ]
ഒരു ഇതര രൂപം if. നിയമങ്ങൾ അർത്ഥമാക്കുന്നത്
if [[ -o അവഗണിക്കുക ]] {
അച്ചടിക്കുക അതെ
}
പ്രവർത്തിക്കുന്നു, പക്ഷേ
if യഥാർഥ { # പ്രവർത്തിക്കുന്നുണ്ട് അല്ല ജോലിചെയ്യൂ!
അച്ചടിക്കുക അതെ
}
ചെയ്യുന്നവൻ അല്ല, ടെസ്റ്റ് ഉചിതമായി വേർതിരിച്ചിട്ടില്ലാത്തതിനാൽ.
if പട്ടിക ഉപലിസ്റ്റ്
ആൾട്ടർനേറ്റിന്റെ ഒരു ഹ്രസ്വ രൂപം if. രൂപത്തിലുള്ള അതേ പരിമിതികൾ പട്ടിക പ്രയോഗിക്കുക
മുമ്പത്തെ ഫോം പോലെ.
വേണ്ടി പേര് ... ( വാക്ക് ... ) ഉപലിസ്റ്റ്
എന്നതിന്റെ ഒരു ഹ്രസ്വ രൂപം വേണ്ടി.
വേണ്ടി പേര് ... [ in വാക്ക് ...] കാലാവധി ഉപലിസ്റ്റ്
എവിടെ കാലാവധി കുറഞ്ഞത് ഒരു പുതിയ ലൈനെങ്കിലും അല്ലെങ്കിൽ ;. മറ്റൊരു ഹ്രസ്വ രൂപം വേണ്ടി.
വേണ്ടി (( [expr1] ; [expr2] ; [expr3] )) ഉപലിസ്റ്റ്
ഗണിതത്തിന്റെ ഒരു ഹ്രസ്വ രൂപം വേണ്ടി കമാൻഡ്.
foreach പേര് ... ( വാക്ക് ... ) പട്ടിക അവസാനിക്കുന്നു
ന്റെ മറ്റൊരു രൂപം വേണ്ടി.
സമയത്ത് പട്ടിക { പട്ടിക }
ഒരു ഇതര രൂപം സമയത്ത്. ഫോമിലെ പരിമിതികൾ ശ്രദ്ധിക്കുക പട്ടിക പരാമർശിച്ചു
മുകളിൽ.
വരുവോളം പട്ടിക { പട്ടിക }
ഒരു ഇതര രൂപം വരുവോളം. ഫോമിലെ പരിമിതികൾ ശ്രദ്ധിക്കുക പട്ടിക പരാമർശിച്ചു
മുകളിൽ.
ആവർത്തിച്ച് വാക്ക് ഉപലിസ്റ്റ്
ഇത് ഒരു ഹ്രസ്വ രൂപമാണ് ആവർത്തിച്ച്.
കേസ് വാക്ക് { [[(] പാറ്റേൺ [ | പാറ്റേൺ ]... ) പട്ടിക (;;|;&|;|)]... }
ഒരു ഇതര രൂപം കേസ്.
തെരഞ്ഞെടുക്കുക പേര് [ in വാക്ക് ... കാലാവധി ] ഉപലിസ്റ്റ്
എവിടെ കാലാവധി കുറഞ്ഞത് ഒരു പുതിയ ലൈനെങ്കിലും അല്ലെങ്കിൽ ;. ന്റെ ഒരു ഹ്രസ്വ രൂപം തെരഞ്ഞെടുക്കുക.
റിസർവ് ചെയ്തു പറ്റൂ
a യുടെ ആദ്യ പദമായി ഉപയോഗിക്കുമ്പോൾ ഇനിപ്പറയുന്ന വാക്കുകൾ സംവരണം ചെയ്ത വാക്കുകളായി അംഗീകരിക്കപ്പെടുന്നു
കമാൻഡ് ഉദ്ധരിക്കുകയോ അപ്രാപ്തമാക്കുകയോ ചെയ്തിട്ടില്ലെങ്കിൽ അപ്രാപ്തമാക്കുക -r:
do ചെയ്തു സി അപ്പോള് എലിഫ് മറ്റാരെങ്കിലും fi വേണ്ടി കേസ് if സമയത്ത് ഫംഗ്ഷൻ ആവർത്തിച്ച് കാലം വരുവോളം തെരഞ്ഞെടുക്കുക കൊപ്രോക്ക്
ശരിയല്ല foreach അവസാനിക്കുന്നു ! [[ { } പ്രഖ്യാപിക്കുക കയറ്റുമതി ചെയ്യുക ഫ്ലോട്ട് പൂർണ്ണസംഖ്യ പ്രാദേശിക വായിക്കാൻ മാത്രം ടൈപ്പ്സെറ്റ്
കൂടാതെ, `}'അല്ലെങ്കിൽ ഏത് സ്ഥാനത്തും അംഗീകരിക്കപ്പെടുന്നു IGNORE_BRACES ഓപ്ഷൻ അല്ലെങ്കിൽ
The അവഗണിക്കുക_CLOSE_BRACES ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു.
പിശകുകൾ
ചില പിശകുകൾ ഷെൽ മാരകമായി കണക്കാക്കുന്നു: ഒരു സംവേദനാത്മക ഷെല്ലിൽ, അവ കാരണമാകുന്നു
കമാൻഡ് ലൈനിലേക്ക് മടങ്ങാനുള്ള നിയന്ത്രണം, ഒരു നോൺ-ഇന്ററാക്ടീവ് ഷെല്ലിൽ അവ ഷെല്ലിന് കാരണമാകുന്നു
അലസിപ്പിക്കണം. zsh-ന്റെ പഴയ പതിപ്പുകളിൽ, ഒരു സ്ക്രിപ്റ്റ് പ്രവർത്തിക്കുന്ന ഒരു നോൺ-ഇന്ററാക്ടീവ് ഷെൽ
പൂർണ്ണമായും നിർത്തലാക്കില്ല, എന്നാൽ വായിക്കേണ്ട അടുത്ത കമാൻഡിൽ എക്സിക്യൂഷൻ പുനരാരംഭിക്കും
സ്ക്രിപ്റ്റ്, ലൂപ്പുകൾ പോലെയുള്ള ഏതെങ്കിലും ഫംഗ്ഷനുകൾ അല്ലെങ്കിൽ ഷെൽ കൺസ്ട്രക്റ്റുകളുടെ ശേഷിക്കുന്നത് ഒഴിവാക്കുന്നു
വ്യവസ്ഥകൾ; ഓപ്ഷൻ സജ്ജീകരിക്കുന്നതിലൂടെ ഈ യുക്തിരഹിതമായ പെരുമാറ്റം വീണ്ടെടുക്കാനാകും
CONTINUE_ON_ERROR.
നോൺ-ഇന്ററാക്ടീവ് ഷെല്ലുകളിൽ കാണപ്പെടുന്ന മാരകമായ പിശകുകൾ ഉൾപ്പെടുന്നു:
· ഷെൽ അഭ്യർത്ഥിക്കുമ്പോൾ ഷെൽ ഓപ്ഷനുകൾ പാഴ്സ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു
· ഇതുപയോഗിച്ച് ഓപ്ഷനുകൾ മാറ്റുന്നതിൽ പരാജയപ്പെടുന്നു ഗണം ബിൽഡിൻ
· ഗണിത പദപ്രയോഗങ്ങൾ പാഴ്സ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടതുൾപ്പെടെ എല്ലാ തരത്തിലുമുള്ള പിശകുകൾ പാഴ്സ് ചെയ്യുക
· വേരിയബിൾ സ്വഭാവം സജ്ജീകരിക്കുന്നതിനോ പരിഷ്ക്കരിക്കുന്നതിനോ ഉള്ള പരാജയങ്ങൾ ടൈപ്പ്സെറ്റ്, പ്രാദേശിക, പ്രഖ്യാപിക്കുക, കയറ്റുമതി ചെയ്യുക,
പൂർണ്ണസംഖ്യ, ഫ്ലോട്ട്
തെറ്റായി സ്ഥാപിച്ചിരിക്കുന്ന ലൂപ്പ് നിയന്ത്രണ ഘടനകളുടെ നിർവ്വഹണം (തുടരുക, ഇടവേള)
· റെഗുലർ എക്സ്പ്രഷൻ മൊഡ്യൂൾ ലഭ്യമല്ലാത്ത റെഗുലർ എക്സ്പ്രഷൻ ഉപയോഗിക്കാനുള്ള ശ്രമങ്ങൾ
· അനുവദനീയമല്ലാത്ത പ്രവർത്തനങ്ങൾ നിയന്ത്രിച്ചിരിക്കുന്നു ഓപ്ഷനുകൾ സജ്ജീകരിച്ചിരിക്കുന്നു
· ഒരു പൈപ്പ് ലൈനിന് ആവശ്യമായ പൈപ്പ് ഉണ്ടാക്കുന്നതിൽ പരാജയം
· ഒരു മൾട്ടിയോ സൃഷ്ടിക്കുന്നതിൽ പരാജയം
ഒരു പ്രഖ്യാപിത ഷെൽ ഫീച്ചറിന് ആവശ്യമായ മൊഡ്യൂൾ ഓട്ടോലോഡ് ചെയ്യുന്നതിൽ പരാജയപ്പെടുന്നു
· കമാൻഡ് അല്ലെങ്കിൽ പ്രോസസ് സബ്സ്റ്റിറ്റ്യൂഷനുകൾ സൃഷ്ടിക്കുന്നതിൽ പിശകുകൾ
· ഗ്ലോബ് യോഗ്യതാ മത്സരങ്ങളിലെ വാക്യഘടന പിശകുകൾ
· ഓപ്ഷൻ പിടിക്കാത്ത ഫയൽ ജനറേഷൻ പിശകുകൾ BAD_PATTERN
കേസ് പ്രസ്താവനകൾക്കുള്ളിൽ പൊരുത്തപ്പെടുത്തുന്നതിന് ഉപയോഗിക്കുന്ന എല്ലാ മോശം പാറ്റേണുകളും
ഫയൽ ജനറേഷൻ പരാജയങ്ങൾ കാരണമല്ല ചേർച്ച ഇല്ല അല്ലെങ്കിൽ സമാനമായ ഓപ്ഷനുകൾ
ഒരു മൾട്ടിയോ സൃഷ്ടിക്കാൻ പാറ്റേൺ ഉപയോഗിച്ച എല്ലാ ഫയൽ ജനറേഷൻ പിശകുകളും
· ഷെൽ കണ്ടെത്തിയ മെമ്മറി പിശകുകൾ
· ഷെൽ വേരിയബിളുകളിലേക്കുള്ള അസാധുവായ സബ്സ്ക്രിപ്റ്റുകൾ
· റീഡ്-ഒൺലി വേരിയബിളുകൾ നൽകാനുള്ള ശ്രമങ്ങൾ
· തെറ്റായ തരത്തിലേക്കുള്ള അസൈൻമെന്റ് പോലുള്ള വേരിയബിളുകളുള്ള ലോജിക്കൽ പിശകുകൾ
· അസാധുവായ വേരിയബിൾ പേരുകളുടെ ഉപയോഗം
· വേരിയബിൾ സബ്സ്റ്റിറ്റ്യൂഷൻ വാക്യഘടനയിലെ പിശകുകൾ
· പ്രതീകങ്ങൾ പരിവർത്തനം ചെയ്യുന്നതിൽ പരാജയം $'...' ഭാവങ്ങൾ
എങ്കില് POSIX_BUILTINS ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു, ഷെൽ ബിൽട്ടിൻ കമാൻഡുകളുമായി ബന്ധപ്പെട്ട കൂടുതൽ പിശകുകൾ
POSIX സ്റ്റാൻഡേർഡ് വ്യക്തമാക്കിയതുപോലെ, മാരകമായി കണക്കാക്കുന്നു.
COMMENTS
നോൺ-ഇന്ററാക്ടീവ് ഷെല്ലുകളിൽ, അല്ലെങ്കിൽ സംവേദനാത്മക ഷെല്ലുകളിൽ INTERACTIVE_COMMENTS ഓപ്ഷൻ
സെറ്റ്, എന്നതിന്റെ മൂന്നാമത്തെ പ്രതീകത്തിൽ തുടങ്ങുന്ന വാക്ക് ഹിസ്ചറുകൾ പരാമീറ്റർ (`#' സ്ഥിരസ്ഥിതിയായി)
ആ വാക്കും ഒരു പുതിയ വരി വരെയുള്ള ഇനിപ്പറയുന്ന എല്ലാ പ്രതീകങ്ങളും അവഗണിക്കപ്പെടുന്നതിന് കാരണമാകുന്നു.
അപരനാമം
ഓരോ യോഗ്യനും വാക്ക് ഷെൽ ഇൻപുട്ടിൽ ഒരു അപരനാമം നിർവചിച്ചിട്ടുണ്ടോ എന്ന് പരിശോധിക്കുന്നു
അത്. അങ്ങനെയാണെങ്കിൽ, അത് കമാൻഡ് പൊസിഷനിലാണെങ്കിൽ അപരനാമത്തിന്റെ വാചകം ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കും (അത് എങ്കിൽ
ഒരു ലളിതമായ ആജ്ഞയുടെ ആദ്യ വാക്ക് ആകാം), അല്ലെങ്കിൽ അപരനാമം ആഗോളമാണെങ്കിൽ. എങ്കിൽ
റീപ്ലേസ്മെന്റ് ടെക്സ്റ്റ് ഒരു സ്പെയ്സിൽ അവസാനിക്കുന്നു, ഷെൽ ഇൻപുട്ടിലെ അടുത്ത വാക്ക് എപ്പോഴും യോഗ്യമാണ്
അപരനാമ വിപുലീകരണ ആവശ്യങ്ങൾക്കായി. ഒരു അപരനാമം നിർവചിക്കുന്നത് ഉപയോഗിച്ചാണ് അപരാഭിധാനം ബിൽഡിൻ; ആഗോള
അപരനാമങ്ങൾ ഉപയോഗിച്ച് നിർവചിക്കാം -g ആ ബിൽഡിനിലേക്കുള്ള ഓപ്ഷൻ.
A വാക്ക് നിർവചിച്ചിരിക്കുന്നത്:
· ഏതെങ്കിലും പ്ലെയിൻ സ്ട്രിംഗ് അല്ലെങ്കിൽ ഗ്ലോബ് പാറ്റേൺ
· ഏതെങ്കിലും ഉദ്ധരണി രീതി ഉപയോഗിച്ച് ഉദ്ധരിച്ച ഏതെങ്കിലും സ്ട്രിംഗ് (ഉദ്ധരണികൾ അതിന്റെ ഭാഗമായിരിക്കണം എന്നത് ശ്രദ്ധിക്കുക
ഇതിനുള്ള അപരനാമ നിർവചനം യോഗ്യമാണ്)
· ഏതെങ്കിലും പാരാമീറ്റർ റഫറൻസ് അല്ലെങ്കിൽ കമാൻഡ് സബ്സ്റ്റിറ്റ്യൂഷൻ
· വൈറ്റ്സ്പെയ്സോ മറ്റ് ടോക്കണുകളോ ഇല്ലാതെ സംയോജിപ്പിച്ചിരിക്കുന്ന മേൽപ്പറഞ്ഞ ഏതെങ്കിലും ശ്രേണി
അവര്ക്കിടയില്
· റിസർവ് ചെയ്ത ഏതെങ്കിലും വാക്ക് (കേസ്, do, മറ്റാരെങ്കിലുംമുതലായവ)
· ആഗോള അപരനാമം, ഏതെങ്കിലും കമാൻഡ് സെപ്പറേറ്റർ, ഏതെങ്കിലും റീഡയറക്ഷൻ ഓപ്പറേറ്റർ, കൂടാതെ `(' അഥവാ
`)ഒരു ഗ്ലോബ് പാറ്റേണിന്റെ ഭാഗമല്ലാത്തപ്പോൾ
എന്ന അപരനാമം നിലവിൽ സാധ്യമല്ല((ഗണിതത്തെ പരിചയപ്പെടുത്തുന്ന ടോക്കൺ
പദപ്രയോഗങ്ങൾ, കാരണം ഒരു പൂർണ്ണമായ പ്രസ്താവന പാഴ്സ് ചെയ്യപ്പെടുന്നതുവരെ, അത് വേർതിരിച്ചറിയാൻ കഴിയില്ല
രണ്ട് തുടർച്ചയായി `(നെസ്റ്റഡ് സബ്ഷെല്ലുകൾ അവതരിപ്പിക്കുന്ന ടോക്കണുകൾ.
എപ്പോൾ POSIX_ALIASES സജ്ജീകരിച്ചിരിക്കുന്നു, ഉദ്ധരിക്കാത്ത ലളിതമായ സ്ട്രിംഗുകൾക്ക് മാത്രമേ അപരനാമത്തിന് അർഹതയുള്ളൂ. ദി
അപരാഭിധാനം ബിൽട്ടിൻ യോഗ്യതയില്ലാത്ത അപരനാമങ്ങൾ നിരസിക്കുന്നില്ല, പക്ഷേ അവ വിപുലീകരിച്ചിട്ടില്ല.
ഹിസ്റ്ററി ഒഴികെയുള്ള മറ്റേതെങ്കിലും വിപുലീകരണത്തിന് മുമ്പായി ഷെൽ ഇൻപുട്ടിൽ അപരനാമ വിപുലീകരണം നടക്കുന്നു
വികാസം. അതിനാൽ, വാക്കിന് ഒരു അപരനാമം നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ ഫൂ, അപരനാമം വിപുലീകരണം ആയിരിക്കാം
വാക്കിന്റെ ഒരു ഭാഗം ഉദ്ധരിച്ച് ഒഴിവാക്കി, ഉദാ \foo. ഏതെങ്കിലും തരത്തിലുള്ള ഉദ്ധരണി പ്രവർത്തിക്കുന്നു, ഉണ്ടെങ്കിലും
ഉദ്ധരിച്ച ഫോമിന് ഒരു അപരനാമം നിർവചിക്കുന്നത് തടയാൻ ഒന്നുമല്ല \foo അതുപോലെ.
കൂടാതെ, പോലുള്ള ഒരു സെപ്പറേറ്റർ ആണെങ്കിൽ && അപരനാമമാണ്, \&& രണ്ട് ടോക്കണുകളായി മാറുന്നു \& ഒപ്പം &, ഓരോന്നും
അതിൽ പ്രത്യേകം അപരനാമങ്ങൾ ചെയ്തിരിക്കാം. സമാനമായി \<, \>|, തുടങ്ങിയവ.
പൂർത്തീകരണത്തോടൊപ്പമുള്ള ഉപയോഗത്തിന്, ഒരു പ്രതീകത്തിന് ശേഷം ഒരു പ്രാരംഭ ബാക്ക്സ്ലാഷ് നീക്കം ചെയ്യും
അത് പ്രത്യേകമല്ല, ഒറ്റവാക്കിൽ ആരംഭിച്ച് വാക്ക് ഉദ്ധരിക്കുന്നത് കൂടുതൽ സൗകര്യപ്രദമായിരിക്കും
ഉദ്ധരണി, അതായത് 'ഫൂ; പൂർത്തീകരണം സ്വയമേവ പിന്നിലുള്ള ഒറ്റ ഉദ്ധരണി ചേർക്കും.
ഇനിപ്പറയുന്ന കോഡ് ചിത്രീകരിച്ചിരിക്കുന്ന അപരനാമങ്ങളിൽ സാധാരണയായി നേരിടുന്ന ഒരു പ്രശ്നമുണ്ട്:
അപരാഭിധാനം echobar='echo ബാർ'; എക്കോബാർ
കമാൻഡ് എന്ന സന്ദേശം ഇത് പ്രിന്റ് ചെയ്യുന്നു എക്കോബാർ കണ്ടെത്താനായില്ല. കാരണം ഇത് സംഭവിക്കുന്നു
കോഡ് വായിക്കുമ്പോൾ അപരനാമങ്ങൾ വിപുലീകരിക്കപ്പെടുന്നു; മുഴുവൻ വരിയും ഒറ്റയടിക്ക് വായിച്ചു, അങ്ങനെ
എപ്പോൾ എക്കോബാർ എക്സിക്യൂട്ട് ചെയ്തു, പുതുതായി നിർവ്വചിച്ച അപരനാമം വികസിപ്പിക്കാൻ വളരെ വൈകി. ഇത് പലപ്പോഴും
ഷെൽ സ്ക്രിപ്റ്റുകൾ, ഫംഗ്ഷനുകൾ, കോഡ് എന്നിവയിൽ ` ഉപയോഗിച്ച് എക്സിക്യൂട്ട് ചെയ്ത പ്രശ്നംഉറവിടം' അല്ലെങ്കിൽ '.'.
തൽഫലമായി, അപരനാമങ്ങൾക്ക് പകരം ഫംഗ്ഷനുകളുടെ ഉപയോഗം നോൺ-ഇന്ററാക്റ്റീവ് കോഡിൽ ശുപാർശ ചെയ്യുന്നു.
അപരനാമങ്ങളുടെയും പ്രവർത്തന നിർവചനങ്ങളുടെയും സഹായകരമല്ലാത്ത ഇടപെടലും ശ്രദ്ധിക്കുക:
അപരാഭിധാനം func='noglob func'
func() {
എക്കോ Do എന്തെങ്കിലും കൂടെ $*
}
ഫംഗ്ഷൻ നിർവചനങ്ങളിൽ അപരനാമങ്ങൾ വികസിപ്പിച്ചതിനാൽ, ഇത് ഇനിപ്പറയുന്ന കമാൻഡിന് കാരണമാകുന്നു
നടപ്പിലാക്കും:
നോഗ്ലോബ് func() {
എക്കോ Do എന്തെങ്കിലും കൂടെ $*
}
ഏത് നിർവചിക്കുന്നു നോഗ്ലോബ് കൂടാതെ ഫങ്ക് ശരീരം നൽകിയിട്ടുള്ള പ്രവർത്തനങ്ങളായി. ഇത് ഒഴിവാക്കാൻ,
ഒന്നുകിൽ പേര് ഉദ്ധരിക്കുക ഫങ്ക് അല്ലെങ്കിൽ ഇതര ഫംഗ്ഷൻ ഡെഫനിഷൻ ഫോം ഉപയോഗിക്കുക `ഫംഗ്ഷൻ
ഫങ്ക്'. ഫംഗ്ഷൻ പ്രവർത്തിക്കുന്നതിനുശേഷം അപരനാമം നിർവചിക്കപ്പെട്ടിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുന്നത് പ്രശ്നകരമാണ്
കോഡ് ശകലം വീണ്ടും നിർവ്വഹിച്ചേക്കാം.
ഉദ്ധരിക്കുന്നു
ഒരു കഥാപാത്രം ആകാം ഉദ്ധരിച്ചത് (അതായത്, സ്വയം നിൽക്കാൻ വേണ്ടി ഉണ്ടാക്കിയത്) അതിന് മുമ്പായി ഒരു ` ഉപയോഗിച്ച്\'.
`\' എന്നതിന് ശേഷം ഒരു പുതിയ വരി അവഗണിക്കപ്പെടുന്നു.
` എന്നതിന് ഇടയിൽ ഘടിപ്പിച്ച ഒരു സ്ട്രിംഗ്$'' ഒപ്പം ''' എന്നത് സ്ട്രിംഗ് ആർഗ്യുമെന്റുകൾ പോലെ തന്നെ പ്രോസസ്സ് ചെയ്യുന്നു
എന്ന അച്ചടിക്കുക ബിൽഡിൻ, തത്ഫലമായുണ്ടാകുന്ന സ്ട്രിംഗ് പൂർണ്ണമായും ഉദ്ധരിക്കപ്പെട്ടതായി കണക്കാക്കുന്നു. എ
അക്ഷരാർത്ഥം `'' എന്ന അക്ഷരം ഉപയോഗിച്ച് സ്ട്രിംഗിൽ ഉൾപ്പെടുത്താം\'' എസ്കേപ്പ്.
ഒരു ജോടി ഒറ്റ ഉദ്ധരണികൾക്കിടയിലുള്ള എല്ലാ പ്രതീകങ്ങളും ('') അതിന് മുമ്പുള്ള ഒരു `$'
ഉദ്ധരിക്കപ്പെടുന്നു. ഓപ്ഷൻ ഇല്ലെങ്കിൽ ഒരൊറ്റ ഉദ്ധരണികൾക്കുള്ളിൽ ഒരൊറ്റ ഉദ്ധരണി ദൃശ്യമാകില്ല RC_QUOTES
സജ്ജീകരിച്ചിരിക്കുന്നു, ഈ സാഹചര്യത്തിൽ ഒരു ജോടി ഒറ്റ ഉദ്ധരണികൾ ഒരൊറ്റ ഉദ്ധരണിയായി മാറുന്നു. വേണ്ടി
ഉദാഹരണത്തിന്,
അച്ചടിക്കുക ''''
എങ്കിൽ ഒരു ന്യൂലൈൻ അല്ലാതെ ഒന്നും ഔട്ട്പുട്ട് ചെയ്യുന്നില്ല RC_QUOTES സജ്ജീകരിച്ചിട്ടില്ല, എന്നാൽ ഒരൊറ്റ ഉദ്ധരണി
സജ്ജീകരിച്ചിരിക്കുന്നു.
ഇരട്ട ഉദ്ധരണികൾക്കുള്ളിൽ (""), പാരാമീറ്ററും കമാൻഡ് സബ്സ്റ്റിറ്റ്യൂഷനും സംഭവിക്കുന്നു, കൂടാതെ `\' ഉദ്ധരിക്കുന്നു
കഥാപാത്രങ്ങൾ `\', ``', `"', ഒപ്പം '$'.
തിരിച്ചുവിടൽ
ഒരു കമാൻഡ് പിന്തുടരുകയാണെങ്കിൽ & ജോലി നിയന്ത്രണം സജീവമല്ല, തുടർന്ന് സ്ഥിരസ്ഥിതി സ്റ്റാൻഡേർഡ്
കമാൻഡിനുള്ള ഇൻപുട്ട് ശൂന്യമായ ഫയലാണ് / dev / null. അല്ലെങ്കിൽ, അതിനുള്ള പരിസ്ഥിതി
ഒരു കമാൻഡിന്റെ എക്സിക്യൂഷനിൽ പരിഷ്കരിച്ച പ്രകാരം ഇൻവോക്കിംഗ് ഷെല്ലിന്റെ ഫയൽ ഡിസ്ക്രിപ്റ്ററുകൾ അടങ്ങിയിരിക്കുന്നു
ഇൻപുട്ട്/ഔട്ട്പുട്ട് സ്പെസിഫിക്കേഷനുകൾ.
ഇനിപ്പറയുന്നവ ഒരു ലളിതമായ കമാൻഡിൽ എവിടെയും ദൃശ്യമാകാം അല്ലെങ്കിൽ ഒരു സമുച്ചയത്തിന് മുമ്പോ പിന്തുടരുകയോ ചെയ്യാം
കമാൻഡ്. വിപുലീകരണം മുമ്പ് സംഭവിക്കുന്നു വാക്ക് or അക്ക താഴെ സൂചിപ്പിച്ചത് ഒഴികെ ഉപയോഗിക്കുന്നു. എങ്കിൽ
പകരം വയ്ക്കുന്നതിന്റെ ഫലം വാക്ക് ഒന്നിലധികം ഫയൽനാമങ്ങൾ നിർമ്മിക്കുന്നു, റീഡയറക്ഷൻ സംഭവിക്കുന്നു
ഓരോ പ്രത്യേക ഫയൽനാമവും ക്രമത്തിൽ.
< വാക്ക് ഫയൽ തുറക്കുക വാക്ക് സാധാരണ ഇൻപുട്ടായി വായിക്കുന്നതിന്.
<> വാക്ക്
ഫയൽ തുറക്കുക വാക്ക് സാധാരണ ഇൻപുട്ടായി വായിക്കുന്നതിനും എഴുതുന്നതിനും. ഫയൽ ഇല്ലെങ്കിൽ
നിലവിലുണ്ട് അപ്പോൾ അത് സൃഷ്ടിക്കപ്പെടുന്നു.
> വാക്ക് ഫയൽ തുറക്കുക വാക്ക് സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടായി എഴുതുന്നതിന്. ഫയൽ നിലവിലില്ലെങ്കിൽ അത്
സൃഷ്ടിക്കപ്പെടുന്നു. ഫയൽ നിലവിലുണ്ടെങ്കിൽ, ഒപ്പം ക്ലോബ്ബർ ഓപ്ഷൻ സജ്ജമാക്കിയിട്ടില്ല, ഇത് ഒരു കാരണമാകുന്നു
പിശക്; അല്ലെങ്കിൽ, അത് പൂജ്യം നീളത്തിലേക്ക് ചുരുക്കിയിരിക്കുന്നു.
>| വാക്ക്
>! വാക്ക്
അതുപോലെ തന്നെ >, ഫയൽ നിലവിലുണ്ടെങ്കിൽ പൂജ്യം ദൈർഘ്യത്തിലേക്ക് ചുരുക്കിയിരിക്കുന്നു എന്നതൊഴിച്ചാൽ പോലും
ക്ലോബ്ബർ സജ്ജീകരിച്ചിട്ടില്ല.
>> വാക്ക്
ഫയൽ തുറക്കുക വാക്ക് സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടായി അനുബന്ധ മോഡിൽ എഴുതുന്നതിന്. ഫയൽ ഇല്ലെങ്കിൽ
നിലവിലുണ്ട്, കൂടാതെ ക്ലോബ്ബർ ഓപ്ഷൻ സജ്ജീകരിച്ചിട്ടില്ല, ഇത് ഒരു പിശകിന് കാരണമാകുന്നു; അല്ലെങ്കിൽ, ഫയൽ
സൃഷ്ടിച്ചു.
>> | വാക്ക്
>>! വാക്ക്
അതുപോലെ തന്നെ >>, ഫയൽ നിലവിലില്ലെങ്കിൽ സൃഷ്ടിക്കപ്പെടും എന്നതൊഴിച്ചാൽ, ആണെങ്കിലും ക്ലോബ്ബർ
സജ്ജീകരിച്ചിട്ടില്ല.
<<[-] വാക്ക്
ഷെൽ ഇൻപുട്ട് സമാനമായ ഒരു വരി വരെ വായിക്കുന്നു വാക്ക്, അല്ലെങ്കിൽ ഒരു
ഫയലിന്റെ അവസാനം. പാരാമീറ്റർ വിപുലീകരണമോ കമാൻഡ് പകരമോ ഫയൽനാമം സൃഷ്ടിക്കലോ ഇല്ല
ന് നടത്തപ്പെടുന്നു വാക്ക്. തത്ഫലമായുണ്ടാകുന്ന രേഖ, എ ഇവിടെ-രേഖ, ആയിത്തീരുന്നു
സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്.
ഏതെങ്കിലും കഥാപാത്രമാണെങ്കിൽ വാക്ക് ഒറ്റ അല്ലെങ്കിൽ ഇരട്ട ഉദ്ധരണികൾ ഉപയോഗിച്ച് ഉദ്ധരിക്കുന്നു അല്ലെങ്കിൽ `\', ഇല്ല
വ്യാഖ്യാനം പ്രമാണത്തിന്റെ പ്രതീകങ്ങളിൽ സ്ഥാപിച്ചിരിക്കുന്നു. അല്ലെങ്കിൽ, പരാമീറ്റർ
കമാൻഡ് സബ്സ്റ്റിറ്റ്യൂഷൻ സംഭവിക്കുന്നു, `\' തുടർന്ന് ഒരു പുതിയ ലൈൻ നീക്കം ചെയ്തു, ഒപ്പം `\' വേണം
കഥാപാത്രങ്ങളെ ഉദ്ധരിക്കാൻ ഉപയോഗിക്കുന്നു `\', `$', ``' എന്നതിന്റെ ആദ്യ കഥാപാത്രവും വാക്ക്.
അതല്ല വാക്ക് സ്വയം ഷെൽ വികാസത്തിന് വിധേയമാകുന്നില്ല. ബാക്ക്ക്വോട്ടുകൾ വാക്ക് അരുത്
അവരുടെ സാധാരണ പ്രഭാവം ഉണ്ട്; പകരം അവർ ഇരട്ട ഉദ്ധരണികൾക്ക് സമാനമായി പെരുമാറുന്നു, ഒഴികെ
ബാക്ക്ക്വോട്ടുകൾ തന്നെ മാറ്റമില്ലാതെ കടന്നുപോകുന്നു. (ഈ വിവരം
സമ്പൂർണ്ണതയ്ക്കായി നൽകിയിരിക്കുന്നു, ബാക്ക്ക്വോട്ടുകൾ ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നില്ല.) ഉദ്ധരണികൾ
രൂപത്തിൽ $'...' ബാക്ക്സ്ലാഷ് ചെയ്ത റഫറൻസുകൾ വിപുലീകരിക്കുന്നതിന് അവയുടെ സ്റ്റാൻഡേർഡ് പ്രഭാവം ഉണ്ട്
പ്രത്യേക കഥാപാത്രങ്ങളിലേക്ക്.
If <<- ഉപയോഗിക്കുന്നു, തുടർന്ന് എല്ലാ മുൻനിര ടാബുകളും നീക്കം ചെയ്യപ്പെടും വാക്ക് രേഖയിൽ നിന്നും.
<< വാക്ക്
ഷെൽ വിപുലീകരണം നടത്തുക വാക്ക് കൂടാതെ ഫലം സ്റ്റാൻഡേർഡ് ഇൻപുട്ടിലേക്ക് കൈമാറുക. ഇതാണ്
a ഇവിടെ-സ്ട്രിംഗ്. ഉപയോഗം താരതമ്യം ചെയ്യുക വാക്ക് ഇവിടെ-മുകളിലുള്ള പ്രമാണങ്ങളിൽ, എവിടെ
വാക്ക് ഷെൽ വികാസത്തിന് വിധേയമാകുന്നില്ല.
<& അക്കം
>& അക്കം
സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്/ഔട്ട്പുട്ട് ഫയൽ ഡിസ്ക്രിപ്റ്ററിൽ നിന്ന് ഡ്യൂപ്ലിക്കേറ്റ് ചെയ്തതാണ് അക്കം (കാണുക ഡ്യൂപ്പ്2(2)).
<& -
>& - സാധാരണ ഇൻപുട്ട്/ഔട്ട്പുട്ട് അടയ്ക്കുക.
<& p
>& p കോപ്രോസസിൽ നിന്നുള്ള ഇൻപുട്ട്/ഔട്ട്പുട്ട് സ്റ്റാൻഡേർഡ് ഇൻപുട്ട്/ഔട്ട്പുട്ടിലേക്ക് മാറ്റുന്നു.
>& വാക്ക്
&> വാക്ക്
(എവിടെ ഒഴികെ `>& വാക്ക്' മുകളിലുള്ള വാക്യഘടനകളിലൊന്നുമായി പൊരുത്തപ്പെടുന്നു; `&>' എപ്പോഴും ഉപയോഗിക്കാം
ഈ അവ്യക്തത ഒഴിവാക്കാൻ.) സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടും സ്റ്റാൻഡേർഡ് പിശകും (ഫയൽ.) റീഡയറക്ട് ചെയ്യുന്നു
ഡിസ്ക്രിപ്റ്റർ 2) എന്ന രീതിയിൽ> വാക്ക്'. ഇത് ചെയ്യുന്നുവെന്നത് ശ്രദ്ധിക്കുക അല്ല സമാനമാണ്
പ്രഭാവം `> വാക്ക് 2> & 1മൾട്ടിയോസിന്റെ സാന്നിധ്യത്തിൽ (ചുവടെയുള്ള വിഭാഗം കാണുക).
>&| വാക്ക്
>&! വാക്ക്
&>| വാക്ക്
&>! വാക്ക്
സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടും സ്റ്റാൻഡേർഡ് പിശകും (ഫയൽ ഡിസ്ക്രിപ്റ്റർ 2) രീതിയിൽ റീഡയറക്ട് ചെയ്യുന്നു
ന്റെ `>| വാക്ക്'.
>>& വാക്ക്
&>> വാക്ക്
സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടും സ്റ്റാൻഡേർഡ് പിശകും (ഫയൽ ഡിസ്ക്രിപ്റ്റർ 2) രീതിയിൽ റീഡയറക്ട് ചെയ്യുന്നു
ന്റെ `>> വാക്ക്'.
>>&| വാക്ക്
>>&! വാക്ക്
&>>| വാക്ക്
&>>! വാക്ക്
സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടും സ്റ്റാൻഡേർഡ് പിശകും (ഫയൽ ഡിസ്ക്രിപ്റ്റർ 2) രീതിയിൽ റീഡയറക്ട് ചെയ്യുന്നു
ന്റെ `>> | വാക്ക്'.
മേൽപ്പറഞ്ഞവയിലൊന്നിന് മുമ്പായി ഒരു അക്കമുണ്ടെങ്കിൽ, റഫർ ചെയ്യുന്ന ഫയൽ ഡിസ്ക്രിപ്റ്റർ അതാണ്
ഡിഫോൾട്ട് 0 അല്ലെങ്കിൽ 1 ന് പകരം അക്കം വ്യക്തമാക്കുന്നു. റീഡയറക്ടുകൾ ഉള്ള ക്രമം
വ്യക്തമാക്കിയത് പ്രധാനമാണ്. ഷെൽ (ഫയല്
വിവരണക്കാരൻ, ഫയല്) മൂല്യനിർണ്ണയ സമയത്ത് അസോസിയേഷൻ. ഉദാഹരണത്തിന്:
... 1>പേര് 2> & 1
ആദ്യം ഫയൽ ഡിസ്ക്രിപ്റ്റർ 1-നെ ഫയലുമായി ബന്ധപ്പെടുത്തുന്നു പേര്. അത് ഫയൽ ഡിസ്ക്രിപ്റ്റർ 2-നെ ബന്ധപ്പെടുത്തുന്നു
ഫയൽ ഡിസ്ക്രിപ്റ്റർ 1-മായി ബന്ധപ്പെട്ട ഫയലിനൊപ്പം (അതായത്, പേര്). എന്ന ക്രമമാണെങ്കിൽ
റീഡയറക്ടുകൾ പഴയപടിയാക്കി, ഫയൽ ഡിസ്ക്രിപ്റ്റർ 2 ടെർമിനലുമായി ബന്ധപ്പെടുത്തും
(ഫയൽ ഡിസ്ക്രിപ്റ്റർ 1 ആയിരുന്നെന്ന് കരുതുക) തുടർന്ന് ഫയൽ ഡിസ്ക്രിപ്റ്റർ 1-മായി ബന്ധപ്പെടുത്തും
ഫയല് പേര്.
ദി|&' കമാൻഡ് സെപ്പറേറ്റർ വിവരിച്ചിരിക്കുന്നു ലഘുവായ കമാൻഡുകൾ & പൈപ്പ്ലൈനുകൾ in zshmisc(1) ആണ് എ
എന്നതിന്റെ ചുരുക്കെഴുത്ത്2> & 1 |'.
പ്രോസസ്സ് സബ്സ്റ്റിറ്റ്യൂഷന്റെ വിവിധ രൂപങ്ങൾ, `<(പട്ടിക)', ഒപ്പം '=(പട്ടിക)' ഇൻപുട്ടിനും
`>(പട്ടിക)' ഔട്ട്പുട്ടിനായി, പലപ്പോഴും റീഡയറക്ടിനൊപ്പം ഉപയോഗിക്കാറുണ്ട്. ഉദാഹരണത്തിന്, എങ്കിൽ വാക്ക് in
ഒരു ഔട്ട്പുട്ട് റീഡയറക്ഷൻ എന്ന രൂപത്തിലാണ്>(പട്ടിക)' അപ്പോൾ ഔട്ട്പുട്ട് കമാൻഡിലേക്ക് പൈപ്പ് ചെയ്യുന്നു
പ്രതിനിധീകരിക്കുക പട്ടിക. കാണുക പ്രോസസ്സ് ഉപവിഭാഗം in zshexpn(1).
തുറക്കുന്നു FILE വിവരണക്കാർ ഉപയോഗിക്കുന്നു പാരാമീറ്ററുകൾ
ഷെൽ ഒരു കമാൻഡിലേക്കും ഷെൽ ഓപ്ഷനിലേക്കും ആർഗ്യുമെന്റുകൾ പാഴ്സ് ചെയ്യുമ്പോൾ IGNORE_BRACES is
സജ്ജീകരിച്ചിട്ടില്ല, മറ്റൊരു തരത്തിലുള്ള റീഡയറക്ഷൻ അനുവദനീയമാണ്: മുമ്പുള്ള ഒരു അക്കത്തിന് പകരം
ഓപ്പറേറ്റർക്ക് ബ്രേസുകളിൽ ഒരു സാധുവായ ഷെൽ ഐഡന്റിഫയർ ഉണ്ട്. ഷെൽ പുതിയത് തുറക്കും
കുറഞ്ഞത് 10 ആണെന്ന് ഉറപ്പുനൽകുന്ന ഫയൽ ഡിസ്ക്രിപ്റ്റർ കൂടാതെ പേര് നൽകിയ പാരാമീറ്റർ സജ്ജമാക്കുക
ഫയൽ ഡിസ്ക്രിപ്റ്ററിലേക്കുള്ള ഐഡന്റിഫയർ തുറന്നിരിക്കുന്നു. അടയ്ക്കുന്നതിന് ഇടയിൽ വൈറ്റ്സ്പെയ്സ് അനുവദിക്കില്ല
ബ്രേസും റീഡയറക്ഷൻ പ്രതീകവും. ഉദാഹരണത്തിന്:
... {myfd}>&1
ഇത് ഫയൽ ഡിസ്ക്രിപ്റ്റർ 1 ന്റെ തനിപ്പകർപ്പായ ഒരു പുതിയ ഫയൽ ഡിസ്ക്രിപ്റ്റർ തുറക്കുകയും സെറ്റ് ചെയ്യുകയും ചെയ്യുന്നു
പാരാമീറ്റർ myfd ഫയൽ ഡിസ്ക്രിപ്റ്ററിന്റെ നമ്പറിലേക്ക്, അത് കുറഞ്ഞത് 10 ആയിരിക്കും. പുതിയത്
വാക്യഘടന ഉപയോഗിച്ച് ഫയൽ ഡിസ്ക്രിപ്റ്റർ എഴുതാം >&$myfd.
വാക്യഘടന {വൈവിധ്യമാർന്ന}>&-, ഉദാഹരണത്തിന് {myfd}>&-, ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ അടയ്ക്കാൻ ഉപയോഗിച്ചേക്കാം
ഈ രീതിയിൽ തുറന്നു. നൽകിയ പരാമീറ്റർ എന്നത് ശ്രദ്ധിക്കുക വൈവിധ്യമാർന്ന മുമ്പ് സജ്ജമാക്കിയിരിക്കണം
ഈ കേസിൽ ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ.
പരാമീറ്റർ ആയിരിക്കുമ്പോൾ ഈ രീതിയിൽ ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ തുറക്കുകയോ അടയ്ക്കുകയോ ചെയ്യുന്നത് ഒരു പിശകാണ്
വായിക്കാൻ മാത്രം. എന്നിരുന്നാലും, ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ ഉപയോഗിച്ച് വായിക്കുകയോ എഴുതുകയോ ചെയ്യുന്നത് ഒരു പിശകല്ല <&$പരം
or >&$പരം if പരം വായിക്കാൻ മാത്രം.
ഓപ്ഷൻ ആണെങ്കിൽ ക്ലോബ്ബർ സജ്ജീകരിച്ചിട്ടില്ല, ഒരു പാരാമീറ്റർ ഉപയോഗിച്ച് ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ തുറക്കുന്നത് ഒരു പിശകാണ്
ഈ സംവിധാനം മുമ്പ് അനുവദിച്ച ഒരു ഓപ്പൺ ഫയൽ ഡിസ്ക്രിപ്റ്ററിലേക്ക് അത് ഇതിനകം സജ്ജീകരിച്ചിരിക്കുന്നു.
ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ അനുവദിക്കുന്നതിന് പാരാമീറ്റർ ഉപയോഗിക്കുന്നതിന് മുമ്പ് അത് അൺസെറ്റ് ചെയ്യുന്നത് പിശക് ഒഴിവാക്കുന്നു.
ഈ സംവിധാനം ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ അനുവദിക്കുകയോ അടയ്ക്കുകയോ ചെയ്യുന്നുവെന്നത് ശ്രദ്ധിക്കുക; അത് നിർവഹിക്കുന്നില്ല
അതിൽ നിന്നോ അതിലേക്കോ എന്തെങ്കിലും റീഡയറക്ടുകൾ. ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ അനുവദിക്കുന്നത് സാധാരണയായി സൗകര്യപ്രദമാണ്
ഒരു വാദമായി ഉപയോഗിക്കുന്നതിന് മുമ്പ് exec. വാക്യഘടന ഉപയോഗിക്കുമ്പോൾ ഒരു സാഹചര്യത്തിലും പ്രവർത്തിക്കില്ല
പരാൻതീസിസ് ചെയ്ത സബ്ഷെല്ലുകൾ അല്ലെങ്കിൽ ലൂപ്പുകൾ പോലുള്ള സങ്കീർണ്ണമായ കമാൻഡുകൾക്ക് ചുറ്റും, ഓപ്പണിംഗ് ബ്രേസ്
നിലവിലെ ഷെല്ലിൽ എക്സിക്യൂട്ട് ചെയ്യേണ്ട കമാൻഡ് ലിസ്റ്റിന്റെ ഭാഗമായി വ്യാഖ്യാനിക്കപ്പെടുന്നു.
ഒരു ഫയലിന്റെ അലോക്കേഷൻ, ഉപയോഗം, അടയ്ക്കൽ എന്നിവയുടെ ഒരു സാധാരണ ക്രമം താഴെ കാണിക്കുന്നു
വിവരണം:
പൂർണ്ണസംഖ്യ myfd
exec {myfd}>~/logs/mylogfile.txt
അച്ചടിക്കുക ഈ is a ലോഗ് സന്ദേശം. >&$myfd
exec {myfd}>&-
എക്സ്പ്രഷനിലെ വേരിയബിളിന്റെ വികാസം ശ്രദ്ധിക്കുക >&$myfd എന്ന പോയിന്റിൽ സംഭവിക്കുന്നു
വഴിതിരിച്ചുവിടൽ തുറന്നിരിക്കുന്നു. ഇത് കമാൻഡ് ആർഗ്യുമെന്റുകളുടെ വികാസത്തിന് ശേഷവും ഏതെങ്കിലും ശേഷവുമാണ്
കമാൻഡ് ലൈനിൽ ഇടത്തേക്കുള്ള റീഡയറക്ടുകൾ പ്രോസസ്സ് ചെയ്തു.
മൾട്ടിയോസ്
ഉപയോക്താവ് ഒന്നിലധികം തവണ എഴുതുന്നതിനായി ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ തുറക്കാൻ ശ്രമിച്ചാൽ, ഷെൽ തുറക്കുന്നു
ഫയൽ ഡിസ്ക്രിപ്റ്റർ ഒരു പ്രക്രിയയിലേക്കുള്ള ഒരു പൈപ്പ് പോലെ അതിന്റെ ഇൻപുട്ട് വ്യക്തമാക്കിയ എല്ലാത്തിലേക്കും പകർത്തുന്നു
ഔട്ട്പുട്ടുകൾ, സമാനമാണ് ടീ, നൽകിയിട്ടുണ്ട് മൾട്ടിയോസ് സ്വതവേയുള്ളതുപോലെ ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു. അങ്ങനെ:
തീയതി > foo >ബാർ
' എന്ന പേരിലുള്ള രണ്ട് ഫയലുകളിലേക്ക് തീയതി എഴുതുന്നുഫൂ' ഒപ്പം 'ബാർ'. ഒരു പൈപ്പ് ഒരു പരോക്ഷമാണെന്ന് ശ്രദ്ധിക്കുക
തിരിച്ചുവിടൽ; അങ്ങനെ
തീയതി > foo | പൂച്ച
ഫയലിലേക്ക് തീയതി എഴുതുന്നു `ഫൂ', കൂടാതെ അത് പൂച്ചയിലേക്ക് പൈപ്പിടുന്നു.
എങ്കില് മൾട്ടിയോസ് ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു, ഒരു റീഡയറക്ഷൻ ഓപ്പറേറ്ററിന് ശേഷമുള്ള വാക്കും വിധേയമാണ്
ഫയൽനാമം ജനറേഷൻ (ഗ്ലോബിംഗ്). അങ്ങനെ
: > *
നിലവിലുള്ള ഡയറക്ടറിയിലെ എല്ലാ ഫയലുകളും വെട്ടിച്ചുരുക്കും, കുറഞ്ഞത് ഒരെണ്ണമെങ്കിലും ഉണ്ടെന്ന് കരുതുക. (കൂടാതെ
The മൾട്ടിയോസ് ഓപ്ഷൻ, അത് ` എന്ന പേരിൽ ഒരു ശൂന്യമായ ഫയൽ സൃഷ്ടിക്കും*'.) അതുപോലെ, നിങ്ങൾക്ക് ചെയ്യാം
എക്കോ പുറത്ത് 0 >> *.sh
ഉപയോക്താവ് ഒന്നിലധികം തവണ വായിക്കാൻ ഒരു ഫയൽ ഡിസ്ക്രിപ്റ്റർ തുറക്കാൻ ശ്രമിച്ചാൽ, ഷെൽ തുറക്കുന്നു
എല്ലാ നിർദ്ദിഷ്ട ഇൻപുട്ടുകളും അതിലേക്ക് പകർത്തുന്ന ഒരു പ്രക്രിയയിലേക്കുള്ള പൈപ്പ് ആയി ഫയൽ ഡിസ്ക്രിപ്റ്റർ
നിർദ്ദിഷ്ട ക്രമത്തിൽ ഔട്ട്പുട്ട്, സമാനമായ പൂച്ച, നൽകിയിട്ടുണ്ട് മൾട്ടിയോസ് ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു. അങ്ങനെ
അടുക്കുക <foo <fubar
അല്ലെങ്കിൽ പോലും
അടുക്കുക <f{oo,ubar}
എന്നതിന് തുല്യമാണ്പൂച്ച ഫൂ ഫുബാർ | അടുക്കുക'.
റീഡയറക്ഷൻ ആർഗ്യുമെന്റിന്റെ വികാസം, റീഡയറക്ഷൻ തുറക്കുന്ന ഘട്ടത്തിൽ സംഭവിക്കുന്നു
വേരിയബിളിന്റെ വികാസത്തിനായി മുകളിൽ വിവരിച്ച പോയിന്റ് >&$myfd.
ഒരു പൈപ്പ് ഒരു പരോക്ഷമായ റീഡയറക്ഷൻ ആണെന്ന് ശ്രദ്ധിക്കുക; അങ്ങനെ
പൂച്ച ബാർ | അടുക്കുക <foo
എന്നതിന് തുല്യമാണ്പൂച്ച ബാർ ഫൂ | അടുക്കുക' (ഇൻപുട്ടുകളുടെ ക്രമം ശ്രദ്ധിക്കുക).
എങ്കില് മൾട്ടിയോസ് ഓപ്ഷൻ ആണ് unസെറ്റ്, ഓരോ റീഡയറക്ടും മുമ്പത്തെ റീഡയറക്ഷനെ മാറ്റിസ്ഥാപിക്കുന്നു
ആ ഫയൽ ഡിസ്ക്രിപ്റ്റർ. എന്നിരുന്നാലും, റീഡയറക്ട് ചെയ്ത എല്ലാ ഫയലുകളും യഥാർത്ഥത്തിൽ തുറന്നിരിക്കുന്നു, അതിനാൽ
എക്കോ ഹലോ > ബാർ > അടിത്തറ
എപ്പോൾ മൾട്ടിയോസ് സജ്ജീകരിക്കാത്തത് വെട്ടിച്ചുരുക്കും `ബാർ', എഴുതുക 'ഹലോ' എന്നതിലേക്ക്അടിത്തറ'.
ഒരു ഔട്ട്പുട്ട് മൾട്ടിയോ ഒരു ബാഹ്യ പ്രോഗ്രാമിലേക്ക് അറ്റാച്ചുചെയ്യുമ്പോൾ ഒരു പ്രശ്നമുണ്ട്. ഒരു ലളിതമായ
ഉദാഹരണം ഇത് കാണിക്കുന്നു:
പൂച്ച ഫയല് > ഫയൽ1 > ഫയൽ2
പൂച്ച file1 file2
ഇവിടെ, രണ്ടാമത്തേത് `ആകാംപൂച്ച' എന്നതിന്റെ മുഴുവൻ ഉള്ളടക്കവും പ്രദർശിപ്പിക്കില്ല file1 ഒപ്പം
file2 (അതായത് ഇതിന്റെ യഥാർത്ഥ ഉള്ളടക്കം ഫയല് രണ്ടുതവണ ആവർത്തിച്ചു).
അതിനു ശേഷം മൾട്ടിയോസ് മുട്ടയിടുന്നതാണ് ഇതിന് കാരണം പൂച്ച പ്രക്രിയ ഫോർക്ക് ആണ്
പാരന്റ് ഷെൽ, അതിനാൽ മൾട്ടിയോസ് എഴുതി പൂർത്തിയാക്കാൻ പാരന്റ് ഷെൽ കാത്തിരിക്കുന്നില്ല
ഡാറ്റ. ഇതിനർത്ഥം കാണിച്ചിരിക്കുന്ന കമാൻഡിന് മുമ്പ് പുറത്തുകടക്കാൻ കഴിയും എന്നാണ് file1 ഒപ്പം file2 പൂർണ്ണമായും
എഴുതിയത്. ഒരു പരിഹാരമെന്ന നിലയിൽ, അത് പ്രവർത്തിപ്പിക്കാൻ സാധിക്കും പൂച്ച ഒരു ജോലിയുടെ ഭാഗമായുള്ള പ്രക്രിയ
നിലവിലെ ഷെൽ:
{ പൂച്ച ഫയല് } > ഫയൽ > ഫയൽ2
ഇവിടെ, ദി {...} രണ്ട് ഫയലുകളും എഴുതുന്നത് വരെ കാത്തിരിക്കാൻ ജോലി താൽക്കാലികമായി നിർത്തും.
വഴിതിരിച്ചുവിടലുകൾ ഉപയോഗിച്ച് ഇല്ല കമാൻറ്
ഒരു ലളിതമായ കമാൻഡിൽ ഒന്നോ അതിലധികമോ റീഡയറക്ഷൻ ഓപ്പറേറ്റർമാരും പൂജ്യമോ അതിലധികമോ അടങ്ങുമ്പോൾ
പാരാമീറ്റർ അസൈൻമെന്റുകൾ, എന്നാൽ കമാൻഡ് നാമമില്ല, zsh ന് പല തരത്തിൽ പ്രവർത്തിക്കാൻ കഴിയും.
പരാമീറ്റർ ആണെങ്കിൽ NULLCMD സജ്ജീകരിച്ചിട്ടില്ല അല്ലെങ്കിൽ ഓപ്ഷൻ അല്ല CSH_NULLCMD സജ്ജീകരിച്ചിരിക്കുന്നു, ഒരു പിശക് സംഭവിച്ചു.
ഇതാണ് csh പെരുമാറ്റവും CSH_NULLCMD അനുകരിക്കുമ്പോൾ സ്ഥിരസ്ഥിതിയായി സജ്ജീകരിച്ചിരിക്കുന്നു csh.
ഓപ്ഷൻ ആണെങ്കിൽ SH_NULLCMD സജ്ജീകരിച്ചിരിക്കുന്നു, ബിൽറ്റിൻ `:' നൽകിയിരിക്കുന്നതിനൊപ്പം ഒരു കമാൻഡായി ചേർത്തിരിക്കുന്നു
തിരിച്ചുവിടലുകൾ. അനുകരിക്കുമ്പോൾ ഇതാണ് സ്ഥിരസ്ഥിതി sh or ksh.
അല്ലെങ്കിൽ, പരാമീറ്റർ ആണെങ്കിൽ NULLCMD സജ്ജീകരിച്ചിരിക്കുന്നു, അതിന്റെ മൂല്യം എന്നതിനൊപ്പം ഒരു കമാൻഡായി ഉപയോഗിക്കും
തിരിച്ചുവിടലുകൾ നൽകി. രണ്ടും ആണെങ്കിൽ NULLCMD ഒപ്പം READNULLCMD സജ്ജീകരിച്ചിരിക്കുന്നു, തുടർന്ന് രണ്ടാമത്തേതിന്റെ മൂല്യം
റീഡയറക്ഷൻ ഒരു ഇൻപുട്ടായിരിക്കുമ്പോൾ മുമ്പത്തേതിന് പകരം ഉപയോഗിക്കും. സ്ഥിരസ്ഥിതി
വേണ്ടി NULLCMD ആണ് `പൂച്ച' എന്നതിനും READNULLCMD ആണ് `കൂടുതൽ'. അങ്ങനെ
< ഫയല്
യുടെ ഉള്ളടക്കം കാണിക്കുന്നു ഫയല് സ്റ്റാൻഡേർഡ് ഔട്ട്പുട്ടിൽ, അതൊരു ടെർമിനൽ ആണെങ്കിൽ പേജിംഗിനൊപ്പം. NULLCMD
ഒപ്പം READNULLCMD ഷെൽ ഫംഗ്ഷനുകളെ പരാമർശിക്കാം.
കമാൻറ് നിർവ്വഹണം
ഒരു കമാൻഡ് നാമത്തിൽ സ്ലാഷുകൾ ഇല്ലെങ്കിൽ, ഷെൽ അത് കണ്ടെത്താൻ ശ്രമിക്കുന്നു. ഉണ്ടെങ്കിൽ എ
ആ പേരിൽ ഷെൽ ഫംഗ്ഷൻ, വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്നതുപോലെ ഫംഗ്ഷൻ അഭ്യർത്ഥിക്കുന്നു
`പ്രവർത്തനങ്ങൾ'. ആ പേരിൽ ഒരു ഷെൽ ബിൽട്ടിൻ നിലവിലുണ്ടെങ്കിൽ, ബിൽറ്റിൻ വിളിക്കപ്പെടും.
അല്ലെങ്കിൽ, ഷെൽ ഓരോ മൂലകത്തിന്റെയും തിരയുന്നു $പാത ഒരു അടങ്ങുന്ന ഒരു ഡയറക്ടറിക്ക്
ആ പേരിൽ എക്സിക്യൂട്ടബിൾ ഫയൽ. തിരയൽ പരാജയപ്പെട്ടാൽ, ഷെൽ ഒരു പിശക് പ്രിന്റ് ചെയ്യുന്നു
സന്ദേശം നൽകുകയും പൂജ്യമല്ലാത്ത എക്സിറ്റ് സ്റ്റാറ്റസ് നൽകുകയും ചെയ്യുന്നു.
ഫയൽ എക്സിക്യൂട്ടബിൾ ഫോർമാറ്റിൽ അല്ലാത്തതിനാൽ എക്സിക്യൂഷൻ പരാജയപ്പെടുകയാണെങ്കിൽ, ഫയൽ എ
ഡയറക്ടറി, ഇത് ഒരു ഷെൽ സ്ക്രിപ്റ്റ് ആണെന്ന് അനുമാനിക്കപ്പെടുന്നു. / bin / sh അത് നിർവ്വഹിക്കുന്നതിനുവേണ്ടിയാണ്. എങ്കിൽ
പ്രോഗ്രാം ` എന്ന് തുടങ്ങുന്ന ഫയലാണ്#!', ആദ്യ വരിയുടെ ബാക്കി ഭാഗം വ്യക്തമാക്കുന്നു
പ്രോഗ്രാമിന്റെ വ്യാഖ്യാതാവ്. ഷെൽ നിർദ്ദിഷ്ട വ്യാഖ്യാതാവിനെ പ്രവർത്തിപ്പിക്കും
കേർണലിൽ ഈ എക്സിക്യൂട്ടബിൾ ഫോർമാറ്റ് കൈകാര്യം ചെയ്യാത്ത ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങൾ.
ബാഹ്യ കമാൻഡ് കണ്ടെത്തിയില്ലെങ്കിൽ ഒരു ഫംഗ്ഷൻ command_not_found_handler ഷെൽ നിലവിലുണ്ട്
എല്ലാ കമാൻഡ് ലൈൻ ആർഗ്യുമെന്റുകൾക്കൊപ്പം ഈ ഫംഗ്ഷൻ നടപ്പിലാക്കുന്നു. ഫംഗ്ഷൻ സ്റ്റാറ്റസ് നൽകണം
കമാൻഡ് വിജയകരമായി കൈകാര്യം ചെയ്താൽ പൂജ്യം, അല്ലെങ്കിൽ പരാജയപ്പെട്ടാൽ പൂജ്യമല്ലാത്ത നില. ൽ
പിന്നീടുള്ള സന്ദർഭത്തിൽ സ്റ്റാൻഡേർഡ് കൈകാര്യം ചെയ്യൽ പ്രയോഗിക്കുന്നു: `കമാൻഡ് കണ്ടെത്തിയില്ല' എന്നത് സ്റ്റാൻഡേർഡ് ആയി പ്രിന്റ് ചെയ്യുന്നു
പിശക്, സ്റ്റാറ്റസ് 127-ൽ ഷെൽ പുറത്തുകടക്കുന്നു. ഹാൻഡ്ലർ എക്സിക്യൂട്ട് ചെയ്തിരിക്കുന്നത് a എന്നതിൽ ശ്രദ്ധിക്കുക
ഒരു ബാഹ്യ കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യാൻ subshell ഫോർക്ക് ചെയ്തു, അതിനാൽ ഡയറക്ടറികൾ, ഷെൽ എന്നിവയിലേക്ക് മാറുന്നു
പാരാമീറ്ററുകൾ മുതലായവയ്ക്ക് പ്രധാന ഷെല്ലിൽ യാതൊരു സ്വാധീനവുമില്ല.
പ്രവർത്തനങ്ങൾ
ഷെൽ ഫംഗ്ഷനുകൾ നിർവചിച്ചിരിക്കുന്നത് ഫംഗ്ഷൻ സംവരണം ചെയ്ത വാക്ക് അല്ലെങ്കിൽ പ്രത്യേക വാക്യഘടന
`ഫങ്ക്നെയിം ()'. ഷെൽ ഫംഗ്ഷനുകൾ വായിക്കുകയും ആന്തരികമായി സംഭരിക്കുകയും ചെയ്യുന്നു. അപരനാമങ്ങളാണ്
ഫംഗ്ഷൻ വായിക്കുമ്പോൾ പരിഹരിച്ചു. കൂടെ കമാൻഡുകൾ പോലെ ഫംഗ്ഷനുകൾ എക്സിക്യൂട്ട് ചെയ്യുന്നു
ആർഗ്യുമെന്റുകൾ പൊസിഷണൽ പാരാമീറ്ററുകളായി പാസാക്കി. (`കമാൻഡ് എക്സിക്യൂഷൻ' എന്ന വിഭാഗം കാണുക.)
ഫംഗ്ഷനുകൾ കോളർ ചെയ്യുന്ന അതേ പ്രക്രിയയിൽ നിർവ്വഹിക്കുകയും എല്ലാ ഫയലുകളും അവതരിപ്പിക്കുകയും ചെയ്യുന്നു
കോളർക്കൊപ്പം പ്രവർത്തിക്കുന്ന ഡയറക്ടറി. ഒരു കെണി പുറത്ത് ഒരു ഫംഗ്ഷനുള്ളിൽ സെറ്റ് ചെയ്ത ശേഷം എക്സിക്യൂട്ട് ചെയ്യുന്നു
വിളിക്കുന്നയാളുടെ പരിതസ്ഥിതിയിൽ പ്രവർത്തനം പൂർത്തിയാകും.
ദി മടക്കം ഫംഗ്ഷൻ കോളുകളിൽ നിന്ന് മടങ്ങാൻ ബിൽറ്റിൻ ഉപയോഗിക്കുന്നു.
ഫംഗ്ഷൻ ഐഡന്റിഫയറുകൾ ഇതിനൊപ്പം ലിസ്റ്റുചെയ്യാനാകും ഫംഗ്ഷനുകളും ബിൽട്ടിൻ. ഫംഗ്ഷനുകൾ നിർവചിക്കാത്തതാകാം
കൂടെ പ്രവർത്തനരഹിതം ബിൽട്ടിൻ.
ഓട്ടോലോഡിംഗ് പ്രവർത്തനങ്ങൾ
ഒരു ഫംഗ്ഷൻ എന്ന് അടയാളപ്പെടുത്താം വ്യക്തമല്ല ഉപയോഗിച്ച് ഓട്ടോലോഡ് ബിൽട്ടിൻ (അല്ലെങ്കിൽ `ഫംഗ്ഷനുകളും -u' അഥവാ
`ടൈപ്പ്സെറ്റ് -ഫു'). അത്തരമൊരു പ്രവർത്തനത്തിന് ശരീരമില്ല. ഫംഗ്ഷൻ ആദ്യം എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ, ദി
എന്ന ഘടകങ്ങൾ ഉപയോഗിച്ച് ഷെൽ അതിന്റെ നിർവ്വചനം തിരയുന്നു fpath വേരിയബിൾ. അങ്ങനെ
ഓട്ടോലോഡിംഗിനുള്ള പ്രവർത്തനങ്ങൾ നിർവചിക്കുക, ഒരു സാധാരണ ക്രമം ഇതാണ്:
fpath=(~/myfuncs $fpath)
ഓട്ടോലോഡ് myfunc1 myfunc2 ...
വായനയ്ക്കിടയിലുള്ള സാധാരണ അപരനാമം വിപുലീകരിക്കുകയാണെങ്കിൽ അത് അടിച്ചമർത്തപ്പെടും ഓട്ടോലോഡ് ബിൽട്ടിൻ അല്ലെങ്കിൽ അതിന്റെ
തത്തുല്യമായ ഓപ്ഷൻ നൽകിയിരിക്കുന്നു -U. വിതരണം ചെയ്ത പ്രവർത്തനങ്ങളുടെ ഉപയോഗത്തിന് ഇത് ശുപാർശ ചെയ്യുന്നു
zsh വിതരണത്തോടൊപ്പം. മുൻകൂർ കംപൈൽ ചെയ്ത ഫംഗ്ഷനുകൾക്കായി എന്നത് ശ്രദ്ധിക്കുക zcompile ബിൽഡിൻ
പതാകയെ ആജ്ഞാപിക്കുക -U എപ്പോൾ നൽകണം .zwc ഫയൽ സൃഷ്ടിച്ചു, അനുബന്ധമായി
വിവരങ്ങൾ രണ്ടാമത്തേതിലേക്ക് സമാഹരിച്ചിരിക്കുന്നു.
ഓരോന്നും മൂലകം in fpath, ഷെൽ മൂന്ന് സാധ്യമായ ഫയലുകൾക്കായി തിരയുന്നു, അവയിൽ ഏറ്റവും പുതിയത്
ഫംഗ്ഷന്റെ നിർവചനം ലോഡ് ചെയ്യാൻ ഉപയോഗിക്കുന്നു:
മൂലകം.zwc
ഉപയോഗിച്ച് സൃഷ്ടിച്ച ഒരു ഫയൽ zcompile ബിൽട്ടിൻ കമാൻഡ്, ഇതിൽ അടങ്ങിയിരിക്കുമെന്ന് പ്രതീക്ഷിക്കുന്നു
പേരിട്ടിരിക്കുന്ന ഡയറക്ടറിയിലെ എല്ലാ ഫംഗ്ഷനുകൾക്കുമുള്ള നിർവചനങ്ങൾ മൂലകം. ഫയൽ കൈകാര്യം ചെയ്യുന്നു
ഫംഗ്ഷനുകൾക്കായുള്ള ഫയലുകൾ അടങ്ങുന്ന ഒരു ഡയറക്ടറിയുടെ അതേ രീതിയിൽ തിരയുന്നു
പ്രവർത്തനത്തിന്റെ നിർവചനത്തിനായി. നിർവചനം കണ്ടെത്തിയില്ലെങ്കിൽ, തിരയൽ
ഒരു നിർവചനം താഴെ വിവരിച്ചിരിക്കുന്ന മറ്റ് രണ്ട് സാധ്യതകളുമായി മുന്നോട്ട് പോകുന്നു.
If മൂലകം ഇതിനകം ഒരു ഉൾപ്പെടുന്നു .zwc വിപുലീകരണം (അതായത്, വിപുലീകരണം വ്യക്തമായിരുന്നു
ഉപയോക്താവ് നൽകിയത്), മൂലകം ഇല്ലാതെ ഫംഗ്ഷന്റെ നിർവചനത്തിനായി തിരയുന്നു
മറ്റ് ഫയലുകളുടേതുമായി അതിന്റെ പ്രായം താരതമ്യം ചെയ്യുക; വാസ്തവത്തിൽ, ഒന്നും ഉണ്ടാകേണ്ടതില്ല
എന്ന ഡയറക്ടറി മൂലകം പ്രത്യയം ഇല്ലാതെ. അങ്ങനെ ഒരു ഘടകം ഉൾപ്പെടെ
`/usr/local/funcs.zwc' ൽ fpath ഫംഗ്ഷനുകൾക്കായുള്ള തിരയൽ വേഗത്തിലാക്കും
ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഫംഗ്ഷനുകൾ മുമ്പ് കൈകൊണ്ട് വീണ്ടും കംപൈൽ ചെയ്യേണ്ടതിന്റെ പോരായ്മ
ഷെൽ എന്തെങ്കിലും മാറ്റങ്ങൾ ശ്രദ്ധിക്കുന്നു.
മൂലകം/ഫംഗ്ഷൻ.zwc
ഉപയോഗിച്ച് സൃഷ്ടിച്ച ഒരു ഫയൽ zcompile, എന്നതിന്റെ നിർവചനം അടങ്ങിയിരിക്കുമെന്ന് പ്രതീക്ഷിക്കുന്നു
ഫംഗ്ഷൻ. ഇതിൽ മറ്റ് ഫംഗ്ഷൻ നിർവചനങ്ങളും ഉൾപ്പെട്ടേക്കാം, എന്നാൽ അവ രണ്ടും അല്ല
ലോഡ് ചെയ്യുകയോ നടപ്പിലാക്കുകയോ ചെയ്തിട്ടില്ല; ഈ രീതിയിൽ കണ്ടെത്തിയ ഒരു ഫയൽ തിരഞ്ഞു മാത്രം നിർവചനത്തിനായി
of ഫംഗ്ഷൻ.
മൂലകം/ഫംഗ്ഷൻ
zsh കമാൻഡ് ടെക്സ്റ്റിന്റെ ഒരു ഫയൽ, നിർവചനമായി എടുത്തിരിക്കുന്നു ഫംഗ്ഷൻ.
ചുരുക്കത്തിൽ, തിരയലിന്റെ ക്രമം, ആദ്യം, എന്നതിലാണ് മാതാപിതാക്കൾ of ഡയറക്ടറികൾ fpath വേണ്ടി
കംപൈൽ ചെയ്ത ഡയറക്ടറി അല്ലെങ്കിൽ ഡയറക്ടറിയിലെ ഏറ്റവും പുതിയത് fpath; രണ്ടാമത്, ഒന്നിൽ കൂടുതൽ ആണെങ്കിൽ
ഇതിൽ ഏറ്റവും ഇടതുവശത്ത്, അന്വേഷിക്കുന്ന ഫംഗ്ഷന്റെ ഒരു നിർവചനം അടങ്ങിയിരിക്കുന്നു fpath
തിരഞ്ഞെടുക്കപ്പെട്ടിരിക്കുന്നു; മൂന്നാമത്തേത്, ഒരു ഡയറക്ടറിക്കുള്ളിൽ, കംപൈൽ ചെയ്ത ഫംഗ്ഷന്റെ അല്ലെങ്കിൽ ഒരു
സാധാരണ ഫംഗ്ഷൻ നിർവചനം ഉപയോഗിക്കുന്നു.
എങ്കില് KSH_AUTOLOAD ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു, അല്ലെങ്കിൽ ഫയലിന്റെ ലളിതമായ നിർവചനം മാത്രമേ ഉള്ളൂ
ഫംഗ്ഷൻ, ഫയലിന്റെ ഉള്ളടക്കം എക്സിക്യൂട്ട് ചെയ്യും. ഇത് സാധാരണയായി പ്രവർത്തനത്തെ നിർവചിക്കും
ചോദ്യം, എന്നാൽ ഇനീഷ്യലൈസേഷൻ നടത്തുകയും ചെയ്യാം, ഇത് സന്ദർഭത്തിൽ നടപ്പിലാക്കുന്നു
ഫംഗ്ഷൻ എക്സിക്യൂഷൻ, അതിനാൽ പ്രാദേശിക പാരാമീറ്ററുകൾ നിർവചിക്കാം. ആണെങ്കിൽ അത് ഒരു പിശകാണ്
ഫയൽ ലോഡ് ചെയ്യുന്നതിലൂടെ ഫംഗ്ഷൻ നിർവചിക്കപ്പെട്ടിട്ടില്ല.
അല്ലെങ്കിൽ, ഫംഗ്ഷൻ ബോഡി (ചുറ്റുപാടില്ലാതെ `ഫങ്ക്നെയിം() {...}') ആയി കണക്കാക്കുന്നു
ഫയലിന്റെ പൂർണ്ണമായ ഉള്ളടക്കം. ഫയലിനെ നേരിട്ട് ഒരു ആയി ഉപയോഗിക്കാൻ ഈ ഫോം അനുവദിക്കുന്നു
എക്സിക്യൂട്ടബിൾ ഷെൽ സ്ക്രിപ്റ്റ്. ഫയൽ പ്രോസസ്സ് ചെയ്യുന്നത് ഫംഗ്ഷനിൽ കലാശിക്കുന്നുവെങ്കിൽ
വീണ്ടും നിർവചിച്ചു, ഫംഗ്ഷൻ തന്നെ വീണ്ടും നിർവ്വഹിക്കുന്നില്ല. ഷെൽ നിർവഹിക്കാൻ നിർബന്ധിക്കുക
ഇനീഷ്യലൈസേഷൻ, തുടർന്ന് നിർവചിച്ച ഫംഗ്ഷൻ വിളിക്കുക, ഫയലിൽ ഇനിഷ്യലൈസേഷൻ അടങ്ങിയിരിക്കണം
ഒരു സമ്പൂർണ്ണ ഫംഗ്ഷൻ നിർവചനത്തിന് പുറമേ കോഡ് (അത് എക്സിക്യൂട്ട് ചെയ്ത് ഉപേക്ഷിക്കപ്പെടും).
(ഫംഗ്ഷനിലേക്കുള്ള തുടർന്നുള്ള കോളുകൾക്കായി ഇത് നിലനിർത്തും), ഷെല്ലിലേക്കുള്ള ഒരു കോളും
ഫംഗ്ഷൻ, ഏതെങ്കിലും ആർഗ്യുമെന്റുകൾ ഉൾപ്പെടെ, അവസാനം.
ഉദാഹരണത്തിന്, ഓട്ടോലോഡ് ഫയൽ എന്ന് കരുതുക ഫങ്ക് അടങ്ങിയിരിക്കുന്നു
func() { അച്ചടിക്കുക ഈ is ഫങ്ക്; }
അച്ചടിക്കുക ഫങ്ക് is സമാരംഭിച്ചു
പിന്നെ `ഫങ്ക്; ഫങ്ക്' കൂടെ KSH_AUTOLOAD സെറ്റ് ആദ്യ കോളിൽ രണ്ട് സന്ദേശങ്ങളും നിർമ്മിക്കും, പക്ഷേ
എന്ന സന്ദേശം മാത്രംഈ is ഫങ്ക്' രണ്ടാമത്തെയും തുടർന്നുള്ള കോളുകളിലും. കൂടാതെ KSH_AUTOLOAD
സജ്ജമാക്കുക, അത് ആദ്യ കോളിൽ പ്രാരംഭ സന്ദേശവും മറ്റ് സന്ദേശവും നൽകും
രണ്ടാമത്തെയും തുടർന്നുള്ള കോളുകളിലും.
ഓട്ടോലോഡ് ചെയ്തതായി അടയാളപ്പെടുത്താത്ത ഒരു ഫംഗ്ഷൻ സൃഷ്ടിക്കാനും സാധ്യമാണ്, എന്നാൽ ഏത് ലോഡ് ചെയ്യുന്നു
തിരയുന്നതിലൂടെ അതിന്റെ സ്വന്തം നിർവചനം fpath, ഉപയോഗിച്ചുകൊണ്ട്ഓട്ടോലോഡ് -Xഒരു ഷെൽ ഫംഗ്ഷനിൽ.
ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്നവ തുല്യമാണ്:
myfunc() {
ഓട്ടോലോഡ് -X
}
myfunc ആർഗ്സ്...
ഒപ്പം
പ്രവർത്തനരഹിതം myfunc # if myfunc ആയിരുന്നു നിർവചിച്ചിരിക്കുന്നത്
ഓട്ടോലോഡ് myfunc
myfunc ആർഗ്സ്...
വാസ്തവത്തിൽ, ഫംഗ്ഷനുകളും കമാൻഡ് ഔട്ട്പുട്ടുകൾ `ബിൽഡിൻ ഓട്ടോലോഡ് -X' ഒരു ഓട്ടോലോഡഡ് ബോഡി പോലെ
പ്രവർത്തനം. അങ്ങനെയാണ് ഇത് ചെയ്യുന്നത്
പരിണാമം "$(പ്രവർത്തനങ്ങൾ)"
ന്യായമായ ഫലം ഉണ്ടാക്കുന്നു. ഒരു യഥാർത്ഥ ഓട്ടോലോഡഡ് ഫംഗ്ഷൻ തിരിച്ചറിയാൻ കഴിയും
കമന്റിന്റെ സാന്നിധ്യം `# വ്യക്തമല്ല' ശരീരത്തിൽ, കാരണം എല്ലാ അഭിപ്രായങ്ങളും നിരസിക്കപ്പെട്ടിരിക്കുന്നു
നിർവ്വചിച്ച പ്രവർത്തനങ്ങൾ.
ഒരു ഓട്ടോലോഡഡ് ഫംഗ്ഷന്റെ നിർവചനം ലോഡ് ചെയ്യാൻ myfunc നടപ്പിലാക്കാതെ myfunc, ഉപയോഗിക്കുക:
ഓട്ടോലോഡ് +X myfunc
അനോണിമസ് പ്രവർത്തനങ്ങൾ
ഒരു ഫംഗ്ഷന് പേരൊന്നും നൽകിയിട്ടില്ലെങ്കിൽ, അത് `അജ്ഞാതമാണ്' കൂടാതെ പ്രത്യേകമായി കൈകാര്യം ചെയ്യുന്നു. ഒന്നുകിൽ
ഫംഗ്ഷൻ നിർവചനത്തിന്റെ രൂപം ഉപയോഗിക്കാം: a `()മുൻ പേരില്ലാതെ, അല്ലെങ്കിൽ ഒരു `ഫംഗ്ഷൻ'
ഉടൻ താഴെയുള്ള തുറന്ന ബ്രേസ് ഉപയോഗിച്ച്. ഫംഗ്ഷൻ ഉടനടി നിർവ്വഹിക്കുന്നു
നിർവചനത്തിന്റെ പോയിന്റ് ഭാവിയിലെ ഉപയോഗത്തിനായി സംഭരിച്ചിട്ടില്ല. ഫംഗ്ഷന്റെ പേര് ഇതായി സജ്ജീകരിച്ചിരിക്കുന്നു
`(അനോൻ)'.
ക്ലോസിംഗ് ബ്രേസ് നിർവചിച്ചതിന് ശേഷമുള്ള വാക്കുകളായി ഫംഗ്ഷനിലേക്കുള്ള ആർഗ്യുമെന്റുകൾ വ്യക്തമാക്കാം
ഫംഗ്ഷൻ, അതിനാൽ ആർഗ്യുമെന്റുകളൊന്നും ഇല്ലെങ്കിൽ (അല്ലാതെ $0) സജ്ജീകരിച്ചിരിക്കുന്നു. ഇതൊരു
മറ്റ് ഫംഗ്ഷനുകൾ പാഴ്സ് ചെയ്യുന്ന രീതിയിൽ നിന്നുള്ള വ്യത്യാസം: സാധാരണ ഫംഗ്ഷൻ നിർവചനങ്ങൾ ആയിരിക്കാം
'തുടങ്ങിയ ചില കീവേഡുകൾ പിന്തുടരുന്നുമറ്റാരെങ്കിലും' അല്ലെങ്കിൽ 'fi', ഇത് വാദങ്ങളായി പരിഗണിക്കും
അജ്ഞാത ഫംഗ്ഷനുകൾ, അതിനാൽ കീവേഡ് നിർബന്ധമാക്കുന്നതിന് ഒരു ന്യൂലൈൻ അല്ലെങ്കിൽ അർദ്ധവിരാമം ആവശ്യമാണ്
വ്യാഖ്യാനം.
ഏതെങ്കിലും എൻക്ലോസിംഗ് സ്ക്രിപ്റ്റിന്റെയോ ഫംഗ്ഷന്റെയോ ആർഗ്യുമെന്റ് ലിസ്റ്റ് മറച്ചിരിക്കുന്നു എന്നതും ശ്രദ്ധിക്കുക (അതുപോലെ
ഈ ഘട്ടത്തിൽ വിളിക്കപ്പെടുന്ന മറ്റേതൊരു ഫംഗ്ഷനും അങ്ങനെയായിരിക്കുക).
അജ്ഞാത ഫംഗ്ഷനിലേക്ക് റീഡയറക്ടുകൾ പ്രയോഗിക്കുന്നത് പോലെ തന്നെ a
ബ്രേസുകളിൽ പൊതിഞ്ഞ കറന്റ്-ഷെൽ ഘടന. അജ്ഞാത ഫംഗ്ഷനുകളുടെ പ്രധാന ഉപയോഗം എന്നതാണ്
ലോക്കൽ വേരിയബിളുകൾക്ക് ഒരു സ്കോപ്പ് നൽകുക. സ്റ്റാർട്ട്-അപ്പ് ഫയലുകളിൽ ഇത് പ്രത്യേകിച്ചും സൗകര്യപ്രദമാണ്
ഇവ സ്വന്തം പ്രാദേശിക വേരിയബിൾ സ്കോപ്പ് നൽകുന്നില്ല.
ഉദാഹരണത്തിന്,
വേരിയബിൾ=പുറത്ത്
ഫംഗ്ഷൻ {
പ്രാദേശിക വേരിയബിൾ=അകത്ത്
അച്ചടിക്കുക "I am $ വേരിയബിൾ കൂടെ വാദങ്ങൾ $*"
} ഈ ഒപ്പം ആ
അച്ചടിക്കുക "I am $വേരിയബിൾ"
ഇനിപ്പറയുന്നവ ഔട്ട്പുട്ട് ചെയ്യുന്നു:
I am ഉള്ളിൽ കൂടെ വാദങ്ങൾ ഈ ഒപ്പം ആ
I am പുറത്ത്
ഫംഗ്ഷൻ നിർവചനങ്ങൾ ഒന്നുമില്ലാത്തതിലേക്ക് വികസിക്കുന്ന ആർഗ്യുമെന്റുകളുള്ളത് ശ്രദ്ധിക്കുക, ഉദാഹരണത്തിന് `പേര്=;
ഫംഗ്ഷൻ $പേര് { ... }', അജ്ഞാത ഫംഗ്ഷനുകളായി കണക്കാക്കില്ല. പകരം, അവർ
നിശബ്ദമായി നിരാകരിക്കപ്പെടുന്ന സാധാരണ പ്രവർത്തന നിർവചനങ്ങളായി കണക്കാക്കുന്നു.
പ്രത്യേക പ്രവർത്തനങ്ങൾ
ചില പ്രവർത്തനങ്ങൾ, നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ, ഷെല്ലിന് പ്രത്യേക അർത്ഥമുണ്ട്.
കൊളുത്ത് പ്രവർത്തനങ്ങൾ
താഴെയുള്ള ഫംഗ്ഷനുകൾക്കായി, അതേ പേരുള്ള ഒരു അറേ നിർവചിക്കാൻ കഴിയും
ഫംഗ്ഷൻ `_പ്രവർത്തനങ്ങൾ' ചേർത്തു. അത്തരമൊരു അറേയിലെ ഏത് ഘടകവും പേരായി എടുക്കുന്നു
എക്സിക്യൂട്ട് ചെയ്യാനുള്ള ഒരു ഫംഗ്ഷൻ; അതേ സന്ദർഭത്തിലും അതേ വാദഗതികളോടെയുമാണ് ഇത് നടപ്പിലാക്കുന്നത്
അടിസ്ഥാന പ്രവർത്തനം. ഉദാഹരണത്തിന്, എങ്കിൽ $chpwd_functions മൂല്യങ്ങൾ അടങ്ങുന്ന ഒരു അറേ ആണ്
`mychpwd', `chpwd_save_dirstack', തുടർന്ന് ഷെൽ ഫംഗ്ഷനുകൾ എക്സിക്യൂട്ട് ചെയ്യാൻ ശ്രമിക്കുന്നു
`chpwd', `mychpwd' ഒപ്പം 'chpwd_save_dirstack', ആ ക്രമത്തിൽ. ചെയ്യാത്ത ഏതെങ്കിലും പ്രവർത്തനം
നിലനിൽക്കുന്നത് നിശബ്ദമായി അവഗണിക്കപ്പെടുന്നു. ഈ മെക്കാനിസം കണ്ടെത്തിയ ഒരു ഫംഗ്ഷനെ മറ്റൊരിടത്ത് ഇങ്ങനെ വിളിക്കുന്നു
ഒരു `ഹുക്ക് ഫംഗ്ഷൻ'. ഏതെങ്കിലും ഫംഗ്ഷനിലെ പിശക് തുടർന്നുള്ള ഫംഗ്ഷനുകൾ പ്രവർത്തിപ്പിക്കാതിരിക്കുന്നതിന് കാരണമാകുന്നു.
ഒരു പിശക് കൂടി ശ്രദ്ധിക്കുക precmd ഹുക്ക് ഉടൻ പിന്തുടരുന്നതിന് കാരണമാകുന്നു ആനുകാലികം
ഫംഗ്ഷൻ പ്രവർത്തിപ്പിക്കരുത് (അടുത്ത അവസരത്തിൽ ഇത് പ്രവർത്തിപ്പിക്കാമെങ്കിലും).
chpwd നിലവിലെ വർക്കിംഗ് ഡയറക്ടറി മാറുമ്പോഴെല്ലാം എക്സിക്യൂട്ട് ചെയ്യപ്പെടും.
ആനുകാലികം
പരാമീറ്റർ ആണെങ്കിൽ കാലയളവ് സജ്ജീകരിച്ചിരിക്കുന്നു, ഈ ഫംഗ്ഷൻ ഓരോന്നും എക്സിക്യൂട്ട് ചെയ്യുന്നു $PERIOD സെക്കൻഡ്,
ഒരു നിർദ്ദേശത്തിന് തൊട്ടുമുമ്പ്. അറേ ഉപയോഗിച്ച് ഒന്നിലധികം ഫംഗ്ഷനുകൾ നിർവചിച്ചിട്ടുണ്ടെങ്കിൽ ശ്രദ്ധിക്കുക
ആനുകാലിക_പ്രവർത്തനങ്ങൾ പൂർണ്ണമായ ഫംഗ്ഷനുകൾക്ക് ഒരു കാലയളവ് മാത്രമേ ബാധകമാകൂ, കൂടാതെ
ഫംഗ്ഷനുകളുടെ പട്ടികയിൽ മാറ്റം വരുത്തിയാൽ ഷെഡ്യൂൾ ചെയ്ത സമയം പുനഃക്രമീകരിക്കില്ല. അതിനാൽ സെറ്റ്
പ്രവർത്തനങ്ങളെ എപ്പോഴും ഒരുമിച്ച് വിളിക്കുന്നു.
precmd ഓരോ പ്രോംപ്റ്റിനും മുമ്പായി നടപ്പിലാക്കി. പ്രീകമാൻഡ് ഫംഗ്ഷനുകൾ വീണ്ടും നിർവ്വഹിക്കുന്നില്ല എന്നത് ശ്രദ്ധിക്കുക
കമാൻഡ് ലൈൻ വീണ്ടും വരച്ചതിനാൽ, സംഭവിക്കുന്നത് പോലെ, ഉദാഹരണത്തിന്, എ
ജോലിയിൽ നിന്ന് പുറത്തുകടക്കുന്നതിനെക്കുറിച്ചുള്ള അറിയിപ്പ് ദൃശ്യമാകുന്നു.
preexec
ഒരു കമാൻഡ് വായിച്ച് എക്സിക്യൂട്ട് ചെയ്യാൻ പോകുന്നതിന് തൊട്ടുപിന്നാലെ എക്സിക്യൂട്ട് ചെയ്യുന്നു. എങ്കിൽ
ചരിത്ര സംവിധാനം സജീവമാണ് (ഇതിൽ നിന്ന് ലൈൻ നിരസിച്ചോ എന്നത് പരിഗണിക്കാതെ തന്നെ
ഹിസ്റ്ററി ബഫർ), ഉപയോക്താവ് ടൈപ്പ് ചെയ്ത സ്ട്രിംഗ് ആദ്യ ആർഗ്യുമെന്റായി പാസ്സാക്കി,
അല്ലെങ്കിൽ അതൊരു ശൂന്യമായ ചരടാണ്. നടപ്പിലാക്കുന്ന യഥാർത്ഥ കമാൻഡ്
(വികസിപ്പിച്ച അപരനാമങ്ങൾ ഉൾപ്പെടെ) രണ്ട് വ്യത്യസ്ത രൂപങ്ങളിൽ കൈമാറുന്നു: രണ്ടാമത്തെ വാദം
കമാൻഡിന്റെ ഒറ്റ-വരി, വലിപ്പം-പരിമിതമായ പതിപ്പാണ് (ഫംഗ്ഷൻ പോലെയുള്ള കാര്യങ്ങൾക്കൊപ്പം
മൃതദേഹങ്ങൾ എലിഡഡ്); മൂന്നാമത്തെ ആർഗ്യുമെന്റിൽ എക്സിക്യൂട്ട് ചെയ്യുന്ന മുഴുവൻ വാചകവും അടങ്ങിയിരിക്കുന്നു.
zshaddhistory
ഒരു ഹിസ്റ്ററി ലൈൻ ഇന്ററാക്ടീവായി വായിക്കപ്പെടുമ്പോൾ എക്സിക്യൂട്ട് ചെയ്യപ്പെടും, എന്നാൽ അതിന് മുമ്പ്
വധിച്ചു. പൂർണ്ണമായ ചരിത്രരേഖയാണ് ഏക വാദം (അതിനാൽ ഏതെങ്കിലും അവസാനിപ്പിക്കൽ
ന്യൂലൈൻ ഇപ്പോഴും നിലനിൽക്കും).
ഏതെങ്കിലും ഹുക്ക് ഫംഗ്ഷനുകൾ സ്റ്റാറ്റസ് 1 (അല്ലെങ്കിൽ 2 ഒഴികെയുള്ള ഏതെങ്കിലും പൂജ്യമല്ലാത്ത മൂല്യം) നൽകുന്നുവെങ്കിൽ,
ഷെല്ലിന്റെ ഭാവി പതിപ്പുകൾക്ക് ഇത് ഉറപ്പില്ലെങ്കിലും) ഹിസ്റ്ററി ലൈൻ
അടുത്ത വരി വരുന്നതുവരെ അത് ചരിത്രത്തിൽ നിലനിൽക്കുന്നുണ്ടെങ്കിലും സംരക്ഷിക്കപ്പെടില്ല
എക്സിക്യൂട്ട് ചെയ്തു, ഇത് ഉടനടി വീണ്ടും ഉപയോഗിക്കാനോ എഡിറ്റ് ചെയ്യാനോ നിങ്ങളെ അനുവദിക്കുന്നു.
ഏതെങ്കിലും ഹുക്ക് ഫംഗ്ഷനുകൾ സ്റ്റാറ്റസ് 2 നൽകുന്നുവെങ്കിൽ, ഹിസ്റ്ററി ലൈൻ ഇതിൽ സംരക്ഷിക്കപ്പെടും
ആന്തരിക ചരിത്ര ലിസ്റ്റ്, എന്നാൽ ചരിത്ര ഫയലിൽ എഴുതിയിട്ടില്ല. സംഘർഷമുണ്ടായാൽ,
ആദ്യത്തെ പൂജ്യമല്ലാത്ത സ്റ്റാറ്റസ് മൂല്യം എടുക്കുന്നു.
ഒരു ഹുക്ക് ഫംഗ്ഷൻ ` എന്ന് വിളിക്കാംfc -p ...' ചരിത്ര സന്ദർഭം മാറ്റാൻ അങ്ങനെ
ആഗോള ഫയലിൽ നിന്ന് വ്യത്യസ്തമായ ഒരു ഫയലിലാണ് ചരിത്രം സംരക്ഷിച്ചിരിക്കുന്നത് ഹിസ്റ്റ്ഫിൽ
പരാമീറ്റർ. ഇത് പ്രത്യേകമായി കൈകാര്യം ചെയ്യുന്നു: ചരിത്ര സന്ദർഭം സ്വയമേവയാണ്
ഹിസ്റ്ററി ലൈനിന്റെ പ്രോസസ്സിംഗ് പൂർത്തിയായ ശേഷം പുനഃസ്ഥാപിച്ചു.
ഇനിപ്പറയുന്ന ഉദാഹരണ ഫംഗ്ഷൻ ഓപ്ഷനുകളിലൊന്നിൽ പ്രവർത്തിക്കുന്നു INC_APPEND_HISTORY or
SHARE_HISTORY ക്രമത്തിൽ, വരി ഉടൻ തന്നെ എഴുതപ്പെടും
ചരിത്ര എൻട്രി ചേർത്തു. ഇത് ആദ്യം ചരിത്രരേഖയെ സാധാരണ ചരിത്രത്തിലേക്ക് ചേർക്കുന്നു
പുതിയ ലൈൻ നീക്കം ചെയ്തു, ഇത് സാധാരണയായി ശരിയായ പെരുമാറ്റമാണ്. അപ്പോൾ അത് സ്വിച്ചുചെയ്യുന്നു
ചരിത്ര സന്ദർഭം, അതിനാൽ ലൈൻ കറന്റിലുള്ള ഒരു ചരിത്ര ഫയലിലേക്ക് എഴുതപ്പെടും
ഡയറക്ടറി.
zshaddhistory() {
അച്ചടിക്കുക -ശ്രീ -- ${1%%$'\n'}
fc -p .zsh_local_history
}
zshexit
പ്രധാന ഷെൽ സാധാരണയായി പുറത്തുകടക്കാൻ പോകുന്ന സ്ഥലത്ത് എക്സിക്യൂട്ട് ചെയ്യുന്നു. ഇതല്ല
എക്സിറ്റിംഗ് സബ്ഷെല്ലുകളാൽ വിളിക്കപ്പെടുന്നു, അല്ലെങ്കിൽ എപ്പോൾ exec പ്രീകമാൻഡ് മോഡിഫയർ മുമ്പ് ഉപയോഗിച്ചിരുന്നു
ഒരു ബാഹ്യ കമാൻഡ്. കൂടാതെ, വ്യത്യസ്തമായി ട്രാപെക്സിറ്റ്, ഫംഗ്ഷനുകൾ പുറത്തുകടക്കുമ്പോൾ അത് വിളിക്കപ്പെടുന്നില്ല.
കെണി പ്രവർത്തനങ്ങൾ
ചുവടെയുള്ള ഫംഗ്ഷനുകൾ പ്രത്യേകമായി പരിഗണിക്കപ്പെടുന്നു, പക്ഷേ അനുബന്ധ ഹുക്ക് അറേകൾ ഇല്ല.
ട്രാപ്പ്nal
നിർവചിച്ചതും അസാധുവായതുമാണെങ്കിൽ, ഷെൽ പിടിക്കുമ്പോഴെല്ലാം ഈ ഫംഗ്ഷൻ നടപ്പിലാക്കും
ഒരു സിഗ്നൽ SIGnalഎവിടെ nal ഇതിനായി വ്യക്തമാക്കിയിട്ടുള്ള ഒരു സിഗ്നൽ നാമമാണ് കൊല്ലുക ബിൽട്ടിൻ. ദി
ഫംഗ്ഷനിലേക്കുള്ള ആദ്യ പാരാമീറ്ററായി സിഗ്നൽ നമ്പർ കൈമാറും.
ഈ ഫോമിന്റെ ഒരു ഫംഗ്ഷൻ നിർവചിക്കപ്പെടുകയും അസാധുവാക്കുകയും ചെയ്താൽ, ഷെല്ലും പ്രക്രിയകളും സ്പോൺ ചെയ്യുന്നു
അത് അവഗണിക്കും SIGnal.
ഫംഗ്ഷനിൽ നിന്നുള്ള റിട്ടേൺ സ്റ്റാറ്റസ് പ്രത്യേകമായി കൈകാര്യം ചെയ്യുന്നു. ഇത് പൂജ്യമാണെങ്കിൽ, ദി
സിഗ്നൽ കൈകാര്യം ചെയ്തതായി അനുമാനിക്കപ്പെടുന്നു, കൂടാതെ നിർവ്വഹണം സാധാരണഗതിയിൽ തുടരുന്നു.
അല്ലെങ്കിൽ, റിട്ടേൺ സ്റ്റാറ്റസ് ഒഴികെ ഷെൽ തടസ്സപ്പെട്ടതുപോലെ പ്രവർത്തിക്കും
കെണി നിലനിർത്തിയിരിക്കുന്നു.
പിടികിട്ടാത്ത സിഗ്നലുകളാൽ അവസാനിപ്പിച്ച പ്രോഗ്രാമുകൾ സാധാരണയായി സ്റ്റാറ്റസ് 128 പ്ലസ് നൽകുന്നു
സിഗ്നൽ നമ്പർ. അതിനാൽ താഴെ പറയുന്ന കാര്യങ്ങൾ ഹാൻഡ്ലറിന് കാരണമാകുന്നു അടയാളം അച്ചടിക്കാൻ എ
സന്ദേശം, തുടർന്ന് സിഗ്നലിന്റെ സാധാരണ പ്രഭാവം അനുകരിക്കുക.
ട്രാപിന്റ്() {
അച്ചടിക്കുക "പിടിക്കപെട്ടു അടയാളം, അലസിപ്പിക്കുന്നു."
മടക്കം $(( 128 + $1 ))
}
പ്രവർത്തനങ്ങൾ ട്രാപ്സർ, ട്രാപ്ഡീബഗ് ഒപ്പം ട്രാപെക്സിറ്റ് മറ്റൊന്നിനുള്ളിൽ ഒരിക്കലും നടപ്പിലാക്കില്ല
കെണികൾ.
ട്രാപ്ഡീബഗ്
ഓപ്ഷൻ ആണെങ്കിൽ DEBUG_BEFORE_CMD സജ്ജീകരിച്ചിരിക്കുന്നു (അത് സ്ഥിരസ്ഥിതിയായി), ഓരോന്നിനും മുമ്പായി എക്സിക്യൂട്ട് ചെയ്യുന്നു
കമാൻഡ്; അല്ലാത്തപക്ഷം ഓരോ കമാൻഡിനും ശേഷം എക്സിക്യൂട്ട് ചെയ്യുന്നു. യുടെ വിവരണം കാണുക കെണി
ബിൽറ്റ് ഇൻ zshbuiltins(1) ഡീബഗ്ഗിൽ നൽകിയിരിക്കുന്ന അധിക ഫീച്ചറുകളുടെ വിശദാംശങ്ങൾക്ക്
കെണികൾ.
ട്രാപെക്സിറ്റ്
ഷെൽ പുറത്തുകടക്കുമ്പോൾ അല്ലെങ്കിൽ നിലവിലെ ഫംഗ്ഷൻ ഉള്ളിൽ നിർവചിച്ചാൽ പുറത്തുകടക്കുമ്പോൾ എക്സിക്യൂട്ട് ചെയ്യുന്നു
ഒരു ചടങ്ങ്. മൂല്യം $? നിർവ്വഹണത്തിന്റെ തുടക്കത്തിൽ എക്സിറ്റ് സ്റ്റാറ്റസ് ആണ്
പുറത്തുകടക്കുന്ന ഫംഗ്ഷന്റെ ഷെൽ അല്ലെങ്കിൽ റിട്ടേൺ സ്റ്റാറ്റസ്.
ട്രാപ്സർ
ഒരു കമാൻഡിന് പൂജ്യമല്ലാത്ത എക്സിറ്റ് സ്റ്റാറ്റസ് ഉള്ളപ്പോഴെല്ലാം എക്സിക്യൂട്ട് ചെയ്യപ്പെടും. എന്നിരുന്നാലും, പ്രവർത്തനം
ഒരു സബ്ലിസ്റ്റിൽ കമാൻഡ് സംഭവിച്ചിട്ടുണ്ടെങ്കിൽ അത് എക്സിക്യൂട്ട് ചെയ്യില്ല&&' അല്ലെങ്കിൽ '||'; മാത്രം
ഈ തരത്തിലുള്ള സബ്ലിസ്റ്റിലെ അവസാന കമാൻഡ് ട്രാപ്പ് എക്സിക്യൂട്ട് ചെയ്യാൻ കാരണമാകുന്നു. ദി
ഫംഗ്ഷൻ ട്രാപ്പർ പോലെ തന്നെ പ്രവർത്തിക്കുന്നു ട്രാപ്സർ ഇല്ലാത്ത സിസ്റ്റങ്ങളിൽ സിഗർ
(ഇതാണ് സാധാരണ സംഭവം).
പ്രവർത്തനങ്ങൾ ആരംഭിക്കുന്നു `ട്രാപ്പ്' എന്നതുമായി ബദലായി നിർവചിക്കാം കെണി ബിൽഡിൻ: ഇത്
ചില ഉപയോഗങ്ങൾക്ക് അഭികാമ്യമായിരിക്കാം. ഒരു ഫോം ഉപയോഗിച്ച് ഒരു കെണി സ്ഥാപിക്കുന്നത് അതിന്റെ ഏത് കെണിയും നീക്കംചെയ്യുന്നു
ഒരേ സിഗ്നലിനായി മറ്റൊരു രൂപം; ഒന്നുകിൽ ഒരു കെണി നീക്കം ചെയ്യുന്നത് എല്ലാ കെണികളും നീക്കം ചെയ്യുന്നു
ഒരേ സിഗ്നൽ. രൂപങ്ങൾ
ട്രപ്നൽ() {
# കോഡ്
}
('ഫംഗ്ഷൻ ട്രാപ്പുകൾ') കൂടാതെ
കെണി '
# കോഡ്
' nal
('ലിസ്റ്റ് ട്രാപ്പുകൾ') മിക്ക വഴികളിലും തുല്യമാണ്, ഒഴിവാക്കലുകൾ ഇനിപ്പറയുന്നവയാണ്:
· ഫംഗ്ഷൻ ട്രാപ്പുകൾക്ക് സാധാരണ പ്രവർത്തനങ്ങളുടെ എല്ലാ ഗുണങ്ങളും ഉണ്ട്, പട്ടികയിൽ ദൃശ്യമാകുന്നു
ഫംഗ്ഷനുകൾ എന്നതിലുപരി സ്വന്തം ഫംഗ്ഷൻ സന്ദർഭം ഉപയോഗിച്ച് വിളിക്കപ്പെടുന്നു
കെണി ആരംഭിച്ച സന്ദർഭം.
· ഫംഗ്ഷൻ ട്രാപ്പുകളിൽ നിന്നുള്ള റിട്ടേൺ സ്റ്റാറ്റസ് സവിശേഷമാണ്, അതേസമയം ഒരു ലിസ്റ്റ് ട്രാപ്പിൽ നിന്നുള്ള മടക്കം
നൽകിയിരിക്കുന്ന സ്റ്റാറ്റസിനൊപ്പം ചുറ്റുമുള്ള സന്ദർഭം മടങ്ങാൻ കാരണമാകുന്നു.
zsh പെരുമാറ്റത്തിന് അനുസൃതമായി ഫംഗ്ഷൻ ട്രാപ്പുകൾ സബ്ഷെല്ലുകൾക്കുള്ളിൽ പുനഃസജ്ജമാക്കില്ല;
POSIX പെരുമാറ്റത്തിന് അനുസൃതമായി ലിസ്റ്റ് ട്രാപ്പുകൾ പുനഃസജ്ജമാക്കിയിരിക്കുന്നു.
ജോലി
എങ്കില് മോണിറ്റർ ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു, ഒരു ഇന്ററാക്ടീവ് ഷെൽ അസോസിയേറ്റ്സ് a ജോലി ഓരോ പൈപ്പ് ലൈനിലും.
ഇത് നിലവിലുള്ള ജോലികളുടെ ഒരു പട്ടിക സൂക്ഷിക്കുന്നു, അച്ചടിച്ചത് ജോലികൾ കമാൻഡ്, അവരെ ചെറിയ നിയമനം
പൂർണ്ണസംഖ്യകൾ. ഒരു ജോലി ആരംഭിക്കുമ്പോൾ `&', ഷെൽ ഒരു ലൈൻ പ്രിന്റ് ചെയ്യുന്നു
ഇതുപോലെ കാണപ്പെടുന്ന സാധാരണ പിശകിലേക്ക്:
[1] 1234
അസമന്വിതമായി ആരംഭിച്ച ജോലി ജോബ് നമ്പർ 1 ആണെന്നും ഒന്ന് ഉണ്ടെന്നും സൂചിപ്പിക്കുന്നു
(ടോപ്പ്-ലെവൽ) പ്രോസസ്സ്, അതിന്റെ പ്രോസസ്സ് ഐഡി 1234 ആയിരുന്നു.
ഒരു ജോലി ആരംഭിക്കുകയാണെങ്കിൽ `&|' അല്ലെങ്കിൽ '&!', അപ്പോൾ ആ ജോലി ഉടൻ നിരസിക്കപ്പെടും. ശേഷം
സ്റ്റാർട്ടപ്പ്, ഇതിന് ജോബ് ടേബിളിൽ സ്ഥാനമില്ല, ജോലി നിയന്ത്രണത്തിന് വിധേയവുമല്ല
ഇവിടെ വിവരിച്ചിരിക്കുന്ന സവിശേഷതകൾ.
നിങ്ങൾ ഒരു ജോലി നടത്തുകയും മറ്റെന്തെങ്കിലും ചെയ്യാൻ ആഗ്രഹിക്കുകയും ചെയ്യുന്നുവെങ്കിൽ നിങ്ങൾക്ക് ^Z (control-Z) കീ അമർത്താം.
അയക്കുന്ന എ ടി.എസ്.ടി.പി നിലവിലെ ജോലിയുടെ സൂചന: ഈ കീ പുനർ നിർവചിച്ചേക്കാം സസ്പെൻഷൻ
ബാഹ്യ ഓപ്ഷൻ stty കമാൻഡ്. ഷെൽ അപ്പോൾ സാധാരണയായി ജോലിയാണെന്ന് സൂചിപ്പിക്കും
'സസ്പെൻഡ്' ചെയ്തു, മറ്റൊരു പ്രോംപ്റ്റ് പ്രിന്റ് ചെയ്യുക. അപ്പോൾ നിങ്ങൾക്ക് ഇതിന്റെ അവസ്ഥ കൈകാര്യം ചെയ്യാൻ കഴിയും
ജോലി, അത് പശ്ചാത്തലത്തിൽ ഇടുന്നു bg കമാൻഡ് ചെയ്യുക, അല്ലെങ്കിൽ മറ്റ് ചില കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുക, തുടർന്ന്
അവസാനം, ഫോർഗ്രൗണ്ട് കമാൻഡ് ഉപയോഗിച്ച് ജോലിയെ മുൻവശത്തേക്ക് തിരികെ കൊണ്ടുവരിക fg. എ ^ ഇസഡ്
ഉടനടി പ്രാബല്യത്തിൽ വരും, തീർച്ചപ്പെടുത്താത്ത ഔട്ട്പുട്ടിലും വായിക്കാത്ത ഇൻപുട്ടിലും ഒരു തടസ്സം പോലെയാണ്
ടൈപ്പ് ചെയ്യുമ്പോൾ ഉപേക്ഷിക്കപ്പെടും.
ടെർമിനലിൽ നിന്ന് വായിക്കാൻ ശ്രമിച്ചാൽ പശ്ചാത്തലത്തിൽ പ്രവർത്തിപ്പിക്കുന്ന ജോലി താൽക്കാലികമായി നിർത്തിവയ്ക്കും.
മുൻവശത്ത് പ്രവർത്തിക്കുന്ന ജോലി ഒരു ഷെൽ ഫംഗ്ഷൻ ആണെങ്കിൽ, അത് താൽക്കാലികമായി നിർത്തുന്നു എന്നത് ശ്രദ്ധിക്കുക
ഷെൽ ഫോർക്ക് ഉണ്ടാക്കുന്ന പ്രഭാവം ഉണ്ടാകും. വേർതിരിക്കാൻ ഇത് ആവശ്യമാണ്
ജോലിയുടെ നിയന്ത്രണം നിർവഹിക്കുന്ന പാരന്റ് ഷെല്ലിന്റെ അവസ്ഥയിൽ നിന്ന് ഫംഗ്ഷന്റെ അവസ്ഥ
രണ്ടാമത്തേത് കമാൻഡ് ലൈൻ പ്രോംപ്റ്റിലേക്ക് മടങ്ങാം. തൽഫലമായി, ആണെങ്കിലും fg തുടരാൻ ഉപയോഗിക്കുന്നു
പ്രവർത്തനം ഇനിമുതൽ പാരന്റ് ഷെല്ലിന്റെ ഭാഗമാകില്ല, കൂടാതെ ഏതെങ്കിലും വേരിയബിളുകൾ സജ്ജീകരിച്ചിരിക്കുന്നു
പാരന്റ് ഷെല്ലിൽ പ്രവർത്തനം ദൃശ്യമാകില്ല. അതിനാൽ പെരുമാറ്റം വ്യത്യസ്തമാണ്
ചടങ്ങ് ഒരിക്കലും സസ്പെൻഡ് ചെയ്യാത്ത കേസിൽ നിന്ന്. Zsh മറ്റ് പലതിൽ നിന്നും വ്യത്യസ്തമാണ്
ഇക്കാര്യത്തിൽ ഷെല്ലുകൾ.
ഷെൽ a യുടെ വലത് വശത്തായി കോഡ് പ്രവർത്തിപ്പിക്കുമ്പോൾ ഇതേ സ്വഭാവം കാണപ്പെടുന്നു
പൈപ്പ്ലൈൻ അല്ലെങ്കിൽ ഏതെങ്കിലും സങ്കീർണ്ണമായ ഷെൽ നിർമ്മാണം if, വേണ്ടി, മുതലായവ, ക്രമത്തിൽ മുഴുവൻ
കോഡിന്റെ ബ്ലോക്ക് ഒറ്റ ജോലിയായി കൈകാര്യം ചെയ്യാൻ കഴിയും. പശ്ചാത്തല ജോലികൾ സാധാരണയായി അനുവദനീയമാണ്
ഔട്ട്പുട്ട് നിർമ്മിക്കുക, എന്നാൽ കമാൻഡ് നൽകി ഇത് പ്രവർത്തനരഹിതമാക്കാം `stty നിർത്താൻ'. നിങ്ങൾ സജ്ജമാക്കുകയാണെങ്കിൽ
ഈ tty ഐച്ഛികം, തുടർന്ന് അവർ പോലുള്ള ഔട്ട്പുട്ട് ഉത്പാദിപ്പിക്കാൻ ശ്രമിക്കുമ്പോൾ പശ്ചാത്തല ജോലികൾ താൽക്കാലികമായി നിർത്തും
ഇൻപുട്ട് വായിക്കാൻ ശ്രമിക്കുമ്പോൾ അവർ അത് ചെയ്യുന്നു.
ഒരു കമാൻഡ് താൽക്കാലികമായി നിർത്തിവച്ച് പിന്നീട് തുടരുമ്പോൾ fg or കാത്തിരിക്കുക ബിൽഡിനുകൾ, zsh പുനഃസ്ഥാപിക്കുന്നു
ഇത് താൽക്കാലികമായി നിർത്തിവച്ചപ്പോൾ പ്രാബല്യത്തിൽ വന്ന tty മോഡുകൾ. ഇത് (മനപ്പൂർവ്വം) ബാധകമല്ല
കമാൻഡ് തുടരുകയാണെങ്കിൽ `കൊല്ലുക - തുടരുക', അല്ലെങ്കിൽ അത് തുടരുമ്പോൾ bg.
ഷെല്ലിലെ ജോലികൾ പരാമർശിക്കാൻ നിരവധി മാർഗങ്ങളുണ്ട്. ഒരു ജോലി റഫർ ചെയ്യാൻ കഴിയും
ജോലിയുടെ ഏതെങ്കിലും പ്രക്രിയയുടെ പ്രോസസ്സ് ഐഡി അല്ലെങ്കിൽ ഇനിപ്പറയുന്നവയിൽ ഒന്ന്:
%അക്കം
നൽകിയിരിക്കുന്ന നമ്പറുള്ള ജോലി.
%സ്ട്രിംഗ്
കമാൻഡ് ലൈൻ ആരംഭിക്കുന്ന ഏത് ജോലിയും സ്ട്രിംഗ്.
%?സ്ട്രിംഗ്
കമാൻഡ് ലൈനിൽ അടങ്ങിയിരിക്കുന്ന ഏത് ജോലിയും സ്ട്രിംഗ്.
%% നിലവിലെ ജോലി.
%+ ` എന്നതിന് തുല്യമാണ്%%'.
%- മുമ്പത്തെ ജോലി.
ഒരു പ്രക്രിയയുടെ അവസ്ഥ മാറുമ്പോഴെല്ലാം ഷെൽ ഉടൻ പഠിക്കുന്നു. ഇത് സാധാരണയായി നിങ്ങളെ അറിയിക്കുന്നു
ഒരു ജോലി തടസ്സപ്പെടുമ്പോഴെല്ലാം കൂടുതൽ പുരോഗതി സാധ്യമല്ല. എങ്കിൽ അറിയിപ്പ്
ഓപ്ഷൻ സജ്ജീകരിച്ചിട്ടില്ല, അത് നിങ്ങളെ അറിയിക്കുന്നതിന് മുമ്പ് ഒരു പ്രോംപ്റ്റ് പ്രിന്റ് ചെയ്യുന്നതിന് തൊട്ടുമുമ്പ് വരെ കാത്തിരിക്കുന്നു.
അത്തരം എല്ലാ അറിയിപ്പുകളും നേരിട്ട് ടെർമിനലിലേക്കാണ് അയയ്ക്കുന്നത്, സാധാരണ ഔട്ട്പുട്ടിലേക്കല്ല അല്ലെങ്കിൽ
സാധാരണ പിശക്.
മോണിറ്റർ മോഡ് ഓണായിരിക്കുമ്പോൾ, പൂർത്തിയാക്കുന്ന ഓരോ പശ്ചാത്തല ജോലിയും ഏത് കെണിയും സജ്ജമാക്കുന്നു
CHLD.
ജോലികൾ പ്രവർത്തിക്കുമ്പോഴോ താൽക്കാലികമായി നിർത്തിവയ്ക്കുമ്പോഴോ നിങ്ങൾ ഷെൽ വിടാൻ ശ്രമിക്കുമ്പോൾ, നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകും
"നിങ്ങൾ ജോലികൾ താൽക്കാലികമായി നിർത്തി" എന്ന്. നിങ്ങൾക്ക് ഉപയോഗിക്കാം ജോലികൾ അവ എന്താണെന്ന് കാണാൻ ആജ്ഞാപിക്കുക
ആകുന്നു. നിങ്ങൾ ഇത് ചെയ്യുകയോ അല്ലെങ്കിൽ ഉടൻ തന്നെ വീണ്ടും പുറത്തുകടക്കാൻ ശ്രമിക്കുകയോ ചെയ്താൽ, ഷെൽ നിങ്ങൾക്ക് മുന്നറിയിപ്പ് നൽകില്ല a
രണ്ടാം പ്രാവശ്യം; താൽക്കാലികമായി നിർത്തിവച്ച ജോലികൾ അവസാനിപ്പിക്കുകയും റണ്ണിംഗ് ജോലികൾ അയയ്ക്കുകയും ചെയ്യും a
ഫോളോ അപ്പ് സിഗ്നൽ, എങ്കിൽ HUP ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു.
ഷെൽ റണ്ണിംഗ് ജോലികൾ അവസാനിപ്പിക്കുന്നത് ഒഴിവാക്കാൻ, ഒന്നുകിൽ ഉപയോഗിക്കുക nohup കമാൻഡ് (കാണുക
nohup(1)) അല്ലെങ്കിൽ നിരസിക്കുക ബിൽട്ടിൻ.
സിഗ്നലുകൾ
ദി INT ഒപ്പം പുറത്തുപോവുക കമാൻഡ് പിന്തുടരുകയാണെങ്കിൽ, ഒരു ഇൻവോക്ക്ഡ് കമാൻഡിന്റെ സിഗ്നലുകൾ അവഗണിക്കപ്പെടും
`&' ഒപ്പം മോണിറ്റർ ഓപ്ഷൻ സജീവമല്ല. ഷെൽ തന്നെ എപ്പോഴും അവഗണിക്കുന്നു പുറത്തുപോവുക
സിഗ്നൽ. അല്ലെങ്കിൽ, സിഗ്നലുകൾക്ക് അതിന്റെ രക്ഷിതാവിൽ നിന്ന് ഷെല്ലിന് പാരമ്പര്യമായി ലഭിച്ച മൂല്യങ്ങളുണ്ട് (പക്ഷേ
എസ് ട്രാപ്പ്nal 'ഫംഗ്ഷനുകൾ' വിഭാഗത്തിലെ പ്രത്യേക പ്രവർത്തനങ്ങൾ).
ചില ജോലികൾ ഷെല്ലിൽ സ്പഷ്ടമായി നൽകിയിട്ടുള്ളവ ഒഴികെയുള്ള അസമന്വിതമായി പ്രവർത്തിക്കുന്നു
പശ്ചാത്തലം; അത്തരം ജോലികൾക്കായി ഷെൽ സാധാരണയായി കാത്തിരിക്കുന്ന സന്ദർഭങ്ങളിൽ പോലും, വ്യക്തമായും
പുറത്ത് ഓപ്ഷൻ കാരണം കമാൻഡ് അല്ലെങ്കിൽ എക്സിറ്റ് ERR_EXIT ഷെൽ ഇല്ലാതെ പുറത്തുകടക്കാൻ ഇടയാക്കും
കാത്തിരിക്കുന്നു. അത്തരം അസിൻക്രണസ് ജോലികളുടെ ഉദാഹരണങ്ങൾ പ്രോസസ്സ് സബ്സ്റ്റിറ്റ്യൂഷൻ ആണ്, വിഭാഗം കാണുക
പ്രോസസ് സബ്സ്റ്റിറ്റ്യൂഷൻ zshexpn(1) മാനുവൽ പേജും മൾട്ടിയോസിനായുള്ള ഹാൻഡ്ലർ പ്രോസസ്സുകളും,
എന്നതിലെ MULTIOS എന്ന വിഭാഗം കാണുക zshmisc(1) മാനുവൽ പേജ്.
അരിത്മെറ്റിക് മൂല്യനിർണ്ണയം
ബിൽഡിൻ ഉപയോഗിച്ച് ഷെല്ലിന് പൂർണ്ണസംഖ്യയും ഫ്ലോട്ടിംഗ് പോയിന്റ് ഗണിതവും നടത്താൻ കഴിയും ചെയ്യട്ടെ,
അല്ലെങ്കിൽ ഫോമിന്റെ പകരം വയ്ക്കൽ വഴി $((...)). പൂർണ്ണസംഖ്യകൾക്കായി, ഷെൽ സാധാരണയായി കംപൈൽ ചെയ്യുന്നു
ഇത് ലഭ്യമാകുന്നിടത്ത് 8-ബൈറ്റ് കൃത്യത ഉപയോഗിക്കുന്നതിന്, അല്ലാത്തപക്ഷം കൃത്യത 4 ബൈറ്റുകളാണ്. ഇതിന് കഴിയും
പരീക്ഷിക്കുക, ഉദാഹരണത്തിന്, ' എന്ന കമാൻഡ് നൽകിഅച്ചടിക്കുക - $(( 12345678901 ))'; നമ്പർ ആണെങ്കിൽ
മാറ്റമില്ലാതെ ദൃശ്യമാകുന്നു, കൃത്യത കുറഞ്ഞത് 8 ബൈറ്റുകളാണ്. എപ്പോഴും ഫ്ലോട്ടിംഗ് പോയിന്റ് കണക്ക്
കംപൈലർ നൽകുന്ന കൃത്യമായ കൃത്യതയോടെ `ഇരട്ട' തരം ഉപയോഗിക്കുന്നു
ലൈബ്രറിയും.
ദി ചെയ്യട്ടെ ബിൽറ്റിൻ കമാൻഡ് ഗണിത പദപ്രയോഗങ്ങളെ ആർഗ്യുമെന്റുകളായി എടുക്കുന്നു; ഓരോന്നും വിലയിരുത്തപ്പെടുന്നു
പ്രത്യേകം. പല ഗണിത ഓപ്പറേറ്റർമാർക്കും സ്പെയ്സുകൾക്കും ഉദ്ധരണി ആവശ്യമായതിനാൽ,
ഒരു ഇതര ഫോം നൽകിയിരിക്കുന്നു: ഒരു ` ൽ ആരംഭിക്കുന്ന ഏത് കമാൻഡിനും((', എല്ലാ
ഒരു പൊരുത്തപ്പെടുത്തൽ വരെ പ്രതീകങ്ങൾ `))' ഉദ്ധരിച്ച പദപ്രയോഗമായും ഗണിതമായും കണക്കാക്കുന്നു
എന്ന വാദത്തിന് വേണ്ടി വിപുലീകരണം നടത്തി ചെയ്യട്ടെ. കൂടുതൽ കൃത്യമായി പറഞ്ഞാൽ, `((...))' എന്നതിന് തുല്യമാണ്
`ചെയ്യട്ടെ "..."'. എക്സ്പ്രഷന്റെ ഗണിത മൂല്യമാണെങ്കിൽ റിട്ടേൺ സ്റ്റാറ്റസ് 0 ആണ്
പൂജ്യമല്ലാത്തത്, പൂജ്യമാണെങ്കിൽ 1, ഒരു പിശക് സംഭവിച്ചാൽ 2.
ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്ന പ്രസ്താവന
(( Val = 2 + 1 ))
എന്നതിന് തുല്യമാണ്
ചെയ്യട്ടെ "വാല്യം = 2 + 1"
രണ്ടും ഷെൽ വേരിയബിളിന് മൂല്യം 3 നൽകുന്നു Val പൂജ്യം നില തിരികെ നൽകുകയും ചെയ്യുന്നു.
പൂർണ്ണസംഖ്യകൾ 10 ഒഴികെയുള്ള ബേസുകളിൽ ആകാം. ഒരു ലീഡിംഗ് `0x' അല്ലെങ്കിൽ '0X' ഹെക്സാഡെസിമൽ, എ എന്നിവയെ സൂചിപ്പിക്കുന്നു
നയിക്കുന്നു `0b' അല്ലെങ്കിൽ '0B'ബൈനറി. പൂർണ്ണസംഖ്യകളും രൂപത്തിലായിരിക്കാംഅടിസ്ഥാനം#n', എവിടെ അടിസ്ഥാനം ഒരു ആണ്
ഗണിത അടിത്തറയെ പ്രതിനിധീകരിക്കുന്ന രണ്ടിനും മുപ്പത്തിയാറിനും ഇടയിലുള്ള ദശാംശ സംഖ്യ n ഒരു ആണ്
ആ അടിസ്ഥാനത്തിലുള്ള നമ്പർ (ഉദാഹരണത്തിന്, `16#ff' ഹെക്സാഡെസിമലിൽ 255 ആണ്). ദി അടിസ്ഥാനം# ആകാം
ഒഴിവാക്കി, ഈ സാഹചര്യത്തിൽ ബേസ് 10 ഉപയോഗിക്കുന്നു. ബാക്ക്വേർഡ് കോംപാറ്റിബിളിറ്റിക്ക് ഫോം `[അടിസ്ഥാനം]n' ആണ്
എന്നിവയും സ്വീകരിച്ചു.
ഒരു പൂർണ്ണസംഖ്യ പദപ്രയോഗം അല്ലെങ്കിൽ ഫോമിൽ നൽകിയിരിക്കുന്ന അടിസ്ഥാനം `അടിസ്ഥാനം#n' അടിവരയിട്ടേക്കാം (`_')
ദൃശ്യ മാർഗ്ഗനിർദ്ദേശത്തിനായുള്ള മുൻനിര അക്കത്തിന് ശേഷം; ഇവ കണക്കുകൂട്ടലിൽ അവഗണിക്കപ്പെടുന്നു. ഉദാഹരണങ്ങൾ
ആകുന്നു ക്സനുമ്ക്സ_ക്സനുമ്ക്സ_ക്സനുമ്ക്സ or 0xffff_ffff തുല്യമായവ 1000000 ഒപ്പം 0xffffffff യഥാക്രമം.
ഫോമിൽ ഔട്ട്പുട്ടിനായി ഉപയോഗിക്കേണ്ട അടിസ്ഥാനം വ്യക്തമാക്കാനും കഴിയും[#അടിസ്ഥാനം]', വേണ്ടി
ഉദാഹരണം `[# 16]'. ഗണിത സബ്സ്റ്റിറ്റ്യൂഷനുകൾ ഔട്ട്പുട്ട് ചെയ്യുമ്പോൾ അല്ലെങ്കിൽ എപ്പോൾ ഇത് ഉപയോഗിക്കുന്നു
സ്കെയിലർ പാരാമീറ്ററുകൾക്ക് അസൈൻ ചെയ്യുന്നു, പക്ഷേ വ്യക്തമായി നിർവചിക്കപ്പെട്ട ഒരു പൂർണ്ണസംഖ്യ അല്ലെങ്കിൽ ഫ്ലോട്ടിംഗ് പോയിന്റ്
പാരാമീറ്ററിനെ ബാധിക്കില്ല. ഒരു പൂർണ്ണസംഖ്യ വേരിയബിളിനെ പരോക്ഷമായി നിർവ്വചിച്ചിട്ടുണ്ടെങ്കിൽ
ഗണിത പദപ്രയോഗം, ഈ രീതിയിൽ വ്യക്തമാക്കിയ ഏതെങ്കിലും അടിസ്ഥാനം വേരിയബിളിന്റെ ഔട്ട്പുട്ടായി സജ്ജീകരിക്കും
ഓപ്ഷൻ പോലെ ഗണിത അടിസ്ഥാനം `-i അടിസ്ഥാനം' വരെ ടൈപ്പ്സെറ്റ് ബിൽഡിൻ ഉപയോഗിച്ചിരുന്നു. ദി
പദപ്രയോഗത്തിന് മുൻതൂക്കം ഇല്ല, അത് ഒരു ഗണിത പദപ്രയോഗത്തിൽ ഒന്നിലധികം തവണ സംഭവിക്കുകയാണെങ്കിൽ,
അവസാനം നേരിട്ടത് ഉപയോഗിക്കുന്നു. വ്യക്തതയ്ക്കായി, ഇത് ഇവിടെ കാണിക്കാൻ ശുപാർശ ചെയ്യുന്നു
ഒരു പദപ്രയോഗത്തിന്റെ തുടക്കം. ഒരു ഉദാഹരണം എന്ന നിലക്ക്:
ടൈപ്പ്സെറ്റ് -i 16 y
അച്ചടിക്കുക $(( [# 8] x = 32, y = 32 ))
അച്ചടിക്കുക $x $y
ആദ്യം ഔട്ട്പുട്ടുകൾ `ക്സനുമ്ക്സ ക്സനുമ്ക്സ #', നൽകിയിരിക്കുന്ന ഔട്ട്പുട്ട് ബേസിലെ ഏറ്റവും വലത് മൂല്യം, തുടർന്ന് `ക്സനുമ്ക്സ ക്സനുമ്ക്സ # ക്സനുമ്ക്സ ക്സനുമ്ക്സ #',
കാരണം y ഔട്ട്പുട്ട് ബേസ് 16 ഉണ്ടെന്ന് വ്യക്തമായി പ്രഖ്യാപിച്ചിട്ടുണ്ട് x (അത് ചെയ്യുമെന്ന് കരുതുക
ഇതിനകം നിലവിലില്ല) ഗണിത മൂല്യനിർണ്ണയം വഴി പരോക്ഷമായി ടൈപ്പ് ചെയ്യുന്നു, അവിടെ അത് നേടുന്നു
ഔട്ട്പുട്ട് ബേസ് 8.
ദി അടിസ്ഥാനം ഒരു അണ്ടർ സ്കോർ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കാം അല്ലെങ്കിൽ പിന്തുടരാം, അത് തന്നെ പിന്തുടരാം a
പോസിറ്റീവ് പൂർണ്ണസംഖ്യ (മൂല്യം നഷ്ടപ്പെട്ടാൽ 3 ഉപയോഗിക്കുന്നു). അടിവരയിടുന്നു എന്ന് ഇത് സൂചിപ്പിക്കുന്നു
ദൃശ്യ വ്യക്തതയ്ക്കായി നമ്പർ ഗ്രൂപ്പുചെയ്യുന്ന ഔട്ട്പുട്ട് സ്ട്രിംഗിലേക്ക് ചേർക്കണം. ദി
ഇനിപ്പറയുന്ന പൂർണ്ണസംഖ്യ ഒരുമിച്ച് ഗ്രൂപ്പുചെയ്യാനുള്ള അക്കങ്ങളുടെ എണ്ണം വ്യക്തമാക്കുന്നു. ഉദാഹരണത്തിന്:
സ്ഥാപിക്കുക cbases
അച്ചടിക്കുക $(( [#16_4] 65536 ** 2 ))
ഔട്ട്പുട്ടുകൾ `0x1_0000_0000'.
ഫ്ലോട്ടിംഗ് പോയിന്റ് നമ്പറുകൾക്കൊപ്പം ഫീച്ചർ ഉപയോഗിക്കാനാകും, ഈ സാഹചര്യത്തിൽ അടിസ്ഥാനം ആയിരിക്കണം
ഒഴിവാക്കി; ഗ്രൂപ്പിംഗ് ദശാംശ പോയിന്റിൽ നിന്ന് അകലെയാണ്. ഉദാഹരണത്തിന്,
zmodload zsh/mathfunc
അച്ചടിക്കുക $(( [#_] ചതുരശ്ര(1e7) ))
ഔട്ട്പുട്ടുകൾ `3_162.277_660_168_379_5' (കാണിച്ചിരിക്കുന്ന ദശാംശ സ്ഥാനങ്ങളുടെ എണ്ണം വ്യത്യാസപ്പെടാം).
എങ്കില് സി_ബേസ് ഓപ്ഷൻ സജ്ജീകരിച്ചു, ഹെക്സാഡെസിമൽ സംഖ്യകൾ സ്റ്റാൻഡേർഡ് C ഫോർമാറ്റിൽ ഔട്ട്പുട്ട് ചെയ്യുന്നു
ഉദാഹരണം `0xFF' പതിവിനു പകരം '16#FF'. ഓപ്ഷൻ ആണെങ്കിൽ OCTAL_ZEROES സജ്ജീകരിച്ചിരിക്കുന്നു (ഇത്
ഡിഫോൾട്ടായിട്ടല്ല), ഒക്ടൽ നമ്പറുകൾ സമാനമായി പരിഗണിക്കപ്പെടും, അതിനാൽ `' എന്ന് ദൃശ്യമാകും077'
പകരം `ക്സനുമ്ക്സ ക്സനുമ്ക്സ #'. അല്ലാതെ ബേസുകളുടെ ഔട്ട്പുട്ടിൽ ഈ ഐച്ഛികത്തിന് യാതൊരു സ്വാധീനവുമില്ല
ഹെക്സാഡെസിമലും ഒക്ടലും, ഈ ഫോർമാറ്റുകൾ എല്ലായ്പ്പോഴും ഇൻപുട്ടിൽ മനസ്സിലാക്കുന്നു.
`ഉപയോഗിച്ച് ഒരു ഔട്ട്പുട്ട് ബേസ് വ്യക്തമാക്കുമ്പോൾ[#അടിസ്ഥാനം]' വാക്യഘടന, ഉചിതമായ അടിസ്ഥാന പ്രിഫിക്സ്
ആവശ്യമെങ്കിൽ ഔട്ട്പുട്ട് ആയിരിക്കും, അതിനാൽ മൂല്യ ഔട്ട്പുട്ട് ഇൻപുട്ടിനുള്ള സാധുവായ വാക്യഘടനയാണ്. എങ്കിൽ #
ഇരട്ടിയായി, ഉദാഹരണത്തിന് `[##16]', അപ്പോൾ ഒരു അടിസ്ഥാന പ്രിഫിക്സും ഔട്ട്പുട്ട് അല്ല.
ഫ്ലോട്ടിംഗ് പോയിന്റ് സ്ഥിരാങ്കങ്ങൾ ഒരു ദശാംശ ബിന്ദു അല്ലെങ്കിൽ ഒരു ഘാതം സാന്നിധ്യത്താൽ തിരിച്ചറിയപ്പെടുന്നു.
ദശാംശ ബിന്ദു സ്ഥിരാങ്കത്തിന്റെ ആദ്യ പ്രതീകമായിരിക്കാം, പക്ഷേ ഘാതക പ്രതീകം e
or E ഒരു പാരാമീറ്റർ നാമത്തിനായി എടുക്കുന്നതിനാൽ, പാടില്ല. എല്ലാ സംഖ്യാ ഭാഗങ്ങളും (മുമ്പും
ദശാംശ ബിന്ദുവിന് ശേഷവും ഘാതാംഗത്തിലും) ലീഡിന് ശേഷം അടിവരകൾ അടങ്ങിയിരിക്കാം
ദൃശ്യ മാർഗ്ഗനിർദ്ദേശത്തിനുള്ള അക്കം; ഇവ കണക്കുകൂട്ടലിൽ അവഗണിക്കപ്പെടുന്നു.
ഒരു ഗണിത പദപ്രയോഗം ഏതാണ്ട് സമാനമായ വാക്യഘടനയും പദപ്രയോഗങ്ങളുടെ അസ്സോസിയേറ്റിവിറ്റിയും ഉപയോഗിക്കുന്നു
സിയിൽ
നേറ്റീവ് ഓപ്പറേഷൻ മോഡിൽ, ഇനിപ്പറയുന്ന ഓപ്പറേറ്റർമാരെ പിന്തുണയ്ക്കുന്നു (ലിസ്റ്റ് ചെയ്തിരിക്കുന്നത്
മുൻഗണന ക്രമം കുറയുന്നു):
+ - ! ~ ++ --
ഏകീകൃത പ്ലസ്/മൈനസ്, ലോജിക്കൽ അല്ല, പൂരകം, {pre,post}{in,de}crement
<< >> ബിറ്റ്വൈസ് ഇടത്തേക്ക്, വലത്തേക്ക് മാറ്റുക
& ബിറ്റ്വൈസ് ആൻഡ്
^ ബിറ്റ്വൈസ് XOR
| ബിറ്റ്വൈസ് അല്ലെങ്കിൽ
** വിസ്താരം
* / % ഗുണനം, ഹരിക്കൽ, മോഡുലസ് (ബാക്കി)
+ - കൂട്ടിച്ചേർക്കൽ, കുറയ്ക്കൽ
< > <= >=
താരതമ്യത്തിന്
== != സമത്വവും അസമത്വവും
&& ലോജിക്കൽ AND
|| ^^ ലോജിക്കൽ OR, XOR
? : ത്രിതല ഓപ്പറേറ്റർ
= += -= *= /= %= &= ^= |= << = >> = &&= ||= ^^= **=
നിയമനം
, കോമ ഓപ്പറേറ്റർ
ഓപ്പറേറ്റർമാർ `&&', `||', `&&=', ഒപ്പം '||=' ഷോർട്ട് സർക്യൂട്ടിംഗ് ആണ്, അതിലൊന്ന് മാത്രം
ഒരു ത്രിമാന ഓപ്പറേറ്ററിലെ അവസാനത്തെ രണ്ട് പദപ്രയോഗങ്ങൾ വിലയിരുത്തപ്പെടുന്നു. യുടെ മുൻതൂക്കം ശ്രദ്ധിക്കുക
ബിറ്റ്വൈസ് AND, OR, XOR ഓപ്പറേറ്റർമാർ.
ഓപ്ഷൻ ഉപയോഗിച്ച് C_PRECEDENCES ഓപ്പറേറ്റർമാരുടെ മുൻഗണനകൾ (പക്ഷേ മറ്റ് ഗുണങ്ങളൊന്നുമില്ല).
പ്രസക്തമായവയെ പിന്തുണയ്ക്കുന്ന മറ്റ് മിക്ക ഭാഷകളിലുമുള്ളതിന് സമാനമായി മാറ്റുന്നു
ഓപ്പറേറ്റർമാർ:
+ - ! ~ ++ --
ഏകീകൃത പ്ലസ്/മൈനസ്, ലോജിക്കൽ അല്ല, പൂരകം, {pre,post}{in,de}crement
** വിസ്താരം
* / % ഗുണനം, ഹരിക്കൽ, മോഡുലസ് (ബാക്കി)
+ - കൂട്ടിച്ചേർക്കൽ, കുറയ്ക്കൽ
<< >> ബിറ്റ്വൈസ് ഇടത്തേക്ക്, വലത്തേക്ക് മാറ്റുക
< > <= >=
താരതമ്യത്തിന്
== != സമത്വവും അസമത്വവും
& ബിറ്റ്വൈസ് ആൻഡ്
^ ബിറ്റ്വൈസ് XOR
| ബിറ്റ്വൈസ് അല്ലെങ്കിൽ
&& ലോജിക്കൽ AND
^^ ലോജിക്കൽ XOR
|| ലോജിക്കൽ OR
? : ത്രിതല ഓപ്പറേറ്റർ
= += -= *= /= %= &= ^= |= << = >> = &&= ||= ^^= **=
നിയമനം
, കോമ ഓപ്പറേറ്റർ
രണ്ട് സാഹചര്യങ്ങളിലും എക്സ്പോണൻഷ്യേഷന്റെ മുൻഗണന ഏകീകൃത ഓപ്പറേറ്ററുകളേക്കാൾ താഴെയാണെന്ന് ശ്രദ്ധിക്കുക,
അതിനാൽ `-3**2' എന്ന് വിലയിരുത്തുന്നു9', അല്ല '-9'. ആവശ്യമുള്ളിടത്ത് പരാൻതീസിസ് ഉപയോഗിക്കുക: `-(3**2)'.
ഇത് മറ്റ് ഷെല്ലുകളുമായുള്ള അനുയോജ്യതയ്ക്കാണ്.
ഗണിത പ്രവർത്തനങ്ങളെ വാക്യഘടന ഉപയോഗിച്ച് വിളിക്കാം `ഫങ്ക്(വാദിക്കുന്നു)', എവിടെയാണ് പ്രവർത്തനം
എന്ന് തീരുമാനിക്കുന്നു വാദിക്കുന്നു ഒരു സ്ട്രിംഗായി അല്ലെങ്കിൽ കോമയാൽ വേർതിരിച്ച ഗണിത ലിസ്റ്റായി ഉപയോഗിക്കുന്നു
ഭാവങ്ങൾ. ഷെൽ നിലവിൽ ഡിഫോൾട്ടായി ഗണിതശാസ്ത്ര പ്രവർത്തനങ്ങളൊന്നും നിർവചിക്കുന്നില്ല, പക്ഷേ
മൊഡ്യൂൾ zsh/mathfunc ഉപയോഗിച്ച് ലോഡ് ചെയ്തേക്കാം zmodload സ്റ്റാൻഡേർഡ് ഫ്ലോട്ടിംഗ് നൽകുന്നതിന് ബിൽഡിൻ
പോയിന്റ് ഗണിത പ്രവർത്തനങ്ങൾ.
ഫോമിന്റെ ഒരു പദപ്രയോഗം `##x'എവിടെ x എന്നതുപോലുള്ള ഏതെങ്കിലും പ്രതീക ശ്രേണിയാണ്a', `^A', അഥവാ
`\M-\Cx' ഈ പ്രതീകത്തിന്റെ മൂല്യവും രൂപത്തിന്റെ ഒരു പദപ്രയോഗവും നൽകുന്നു#പേര്' നൽകുന്നു
പരാമീറ്ററിലെ ഉള്ളടക്കത്തിന്റെ ആദ്യ പ്രതീകത്തിന്റെ മൂല്യം പേര്. പ്രതീക മൂല്യങ്ങൾ
നിലവിലെ ലൊക്കേലിൽ ഉപയോഗിക്കുന്ന പ്രതീക സെറ്റ് അനുസരിച്ചാണ്; മൾട്ടിബൈറ്റ് പ്രതീകത്തിന്
ഓപ്ഷൻ കൈകാര്യം ചെയ്യുന്നു മൾട്ടിബൈറ്റ് സജ്ജീകരിക്കണം. ഈ ഫോം വ്യത്യസ്തമാണെന്ന കാര്യം ശ്രദ്ധിക്കുക
`$#പേര്', പരാമീറ്ററിന്റെ ദൈർഘ്യം നൽകുന്ന ഒരു സ്റ്റാൻഡേർഡ് പാരാമീറ്റർ സബ്സ്റ്റിറ്റ്യൂഷൻ പേര്.
`#\' എന്നതിനുപകരം ' സ്വീകരിക്കപ്പെടുന്നു##', എന്നാൽ അതിന്റെ ഉപയോഗം ഒഴിവാക്കിയിരിക്കുന്നു.
പേരിട്ട പാരാമീറ്ററുകളും സബ്സ്ക്രിപ്റ്റ് ചെയ്ത അറേകളും ഒരു ഗണിതത്തിൽ പേര് ഉപയോഗിച്ച് പരാമർശിക്കാം
പാരാമീറ്റർ എക്സ്പാൻഷൻ സിന്റാക്സ് ഉപയോഗിക്കാതെ എക്സ്പ്രഷൻ. ഉദാഹരണത്തിന്,
((val2 = വാൽ 1 * 2))
മൂല്യത്തിന്റെ ഇരട്ടി അസൈൻ ചെയ്യുന്നു $val1 പേരിട്ടിരിക്കുന്ന പരാമീറ്ററിലേക്ക് വാൽ 2.
പേരുള്ള ഒരു പരാമീറ്ററിന്റെ ആന്തരിക പൂർണ്ണസംഖ്യ പ്രാതിനിധ്യം ഉപയോഗിച്ച് വ്യക്തമാക്കാം പൂർണ്ണസംഖ്യ
ബിൽട്ടിൻ. പേരുള്ള ഓരോ അസൈൻമെന്റിന്റെയും മൂല്യത്തെ അടിസ്ഥാനമാക്കിയാണ് ഗണിത മൂല്യനിർണ്ണയം നടത്തുന്നത്
പാരാമീറ്റർ ഈ രീതിയിൽ പൂർണ്ണസംഖ്യ പ്രഖ്യാപിച്ചു. ഒരു ഫ്ലോട്ടിംഗ് പോയിന്റ് നമ്പർ അസൈൻ ചെയ്യുന്നു
പൂർണ്ണസംഖ്യ അടുത്ത പൂർണ്ണസംഖ്യയിലേക്ക് റൗണ്ട് ഡൌൺ ചെയ്യുന്നു.
അതുപോലെ, ഫ്ലോട്ടിംഗ് പോയിന്റ് നമ്പറുകൾ കൂടെ പ്രഖ്യാപിക്കാം ഫ്ലോട്ട് ബിൽഡിൻ; രണ്ടെണ്ണം ഉണ്ട്
തരങ്ങൾ, അവയുടെ ഔട്ട്പുട്ട് ഫോർമാറ്റിൽ മാത്രം വ്യത്യാസപ്പെട്ടിരിക്കുന്നു ടൈപ്പ്സെറ്റ് ബിൽട്ടിൻ. ദി
പാരാമീറ്ററിന് പകരം അരിത്മെറ്റിക് സബ്സ്റ്റിറ്റ്യൂഷൻ ഉപയോഗിച്ച് ഔട്ട്പുട്ട് ഫോർമാറ്റ് മറികടക്കാൻ കഴിയും
പകരം വയ്ക്കൽ, അതായത് `${ഫ്ലോട്ട്}' നിർവചിച്ച ഫോർമാറ്റ് ഉപയോഗിക്കുന്നു, പക്ഷേ `$((ഫ്ലോട്ട്))' ഒരു ജനറിക് ഉപയോഗിക്കുന്നു
ഫ്ലോട്ടിംഗ് പോയിന്റ് ഫോർമാറ്റ്.
ആവശ്യമുള്ളിടത്ത് ഫ്ലോട്ടിംഗ് പോയിന്റ് മൂല്യങ്ങളിലേക്ക് പൂർണ്ണസംഖ്യയുടെ പ്രൊമോഷൻ നടത്തുന്നു. ഇതുകൂടാതെ,
ഒരു പൂർണ്ണസംഖ്യ ആവശ്യമുള്ള ഏതെങ്കിലും ഓപ്പറേറ്റർക്ക് (`~', `&', `|', `^', `%', `<<', `>>' അവരുടെ
അസൈൻമെന്റിനൊപ്പം തുല്യമായവ) ഒരു ഫ്ലോട്ടിംഗ് പോയിന്റ് ആർഗ്യുമെന്റ് നൽകിയിരിക്കുന്നു, അത് നിശബ്ദമായിരിക്കും
അടുത്ത പൂർണ്ണസംഖ്യയിലേക്ക് റൗണ്ട് ചെയ്തു.
ഉപയോക്താക്കൾ ജാഗ്രത പാലിക്കണം, മറ്റ് പല പ്രോഗ്രാമിംഗ് ഭാഷകൾക്കും പൊതുവായുണ്ട്, പക്ഷേ സോഫ്റ്റ്വെയർ അല്ല
കണക്കുകൂട്ടലിനായി രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്, zsh-ലെ ഒരു പദപ്രയോഗത്തിന്റെ മൂല്യനിർണ്ണയം ഒരു സമയത്ത് ഒരു പദം എടുക്കുന്നു
കൂടാതെ പൂർണ്ണസംഖ്യകളെ ഫ്ലോട്ടിംഗ് പോയിന്റിലേക്ക് ഉയർത്തുന്നത് അടങ്ങിയിരിക്കുന്ന പദങ്ങളിൽ മാത്രം സംഭവിക്കുന്നില്ല
പൂർണ്ണസംഖ്യകൾ. ഇതുപോലുള്ള ഒരു വിഭജനമാണ് ഇതിന്റെ ഒരു സാധാരണ ഫലം 6/8 വെട്ടിച്ചുരുക്കിയിരിക്കുന്നു, ഇതിൽ
0 വരെ റൗണ്ട് ഡൌൺ ചെയ്യുന്നു FORCE_FLOAT സ്ക്രിപ്റ്റുകളിലോ ഫംഗ്ഷനുകളിലോ ഷെൽ ഓപ്ഷൻ ഉപയോഗിക്കാം
ഫ്ലോട്ടിംഗ് പോയിന്റ് മൂല്യനിർണ്ണയം ഉടനീളം ആവശ്യമാണ്.
സ്കെയിലർ വേരിയബിളുകൾക്ക് വ്യത്യസ്ത സമയങ്ങളിൽ പൂർണ്ണസംഖ്യ അല്ലെങ്കിൽ ഫ്ലോട്ടിംഗ് പോയിന്റ് മൂല്യങ്ങൾ നിലനിർത്താൻ കഴിയും; അവിടെ ഇല്ല
ഈ കേസിൽ സംഖ്യാ തരത്തിന്റെ മെമ്മറി.
മുമ്പ് പ്രഖ്യാപിക്കാതെ ഒരു സംഖ്യാ സന്ദർഭത്തിലാണ് ഒരു വേരിയബിൾ ആദ്യം നൽകിയിരിക്കുന്നതെങ്കിൽ, അത്
എന്ന് പരോക്ഷമായി ടൈപ്പ് ചെയ്യും പൂർണ്ണസംഖ്യ or ഫ്ലോട്ട് തരം ആകുന്നത് വരെ ആ തരം നിലനിർത്തുക
വ്യക്തമായി മാറ്റി അല്ലെങ്കിൽ പരിധിയുടെ അവസാനം വരെ. ഇത് അപ്രതീക്ഷിതമായ പ്രത്യാഘാതങ്ങൾ ഉണ്ടാക്കും.
ഉദാഹരണത്തിന്, ലൂപ്പിൽ
വേണ്ടി (( f = 0; f < 1; f += 0.1 )); do
# ഉപയോഗം $f
ചെയ്തു
if f ഇതിനകം പ്രഖ്യാപിച്ചിട്ടില്ല, ആദ്യ അസൈൻമെന്റ് അതിനെ ഒരു ആയി സൃഷ്ടിക്കാൻ ഇടയാക്കും
പൂർണ്ണസംഖ്യ, അതിന്റെ ഫലമായി പ്രവർത്തനം `f += 0.1' എപ്പോഴും ഫലം ഉണ്ടാക്കും
പൂജ്യമായി വെട്ടിച്ചുരുക്കി, അങ്ങനെ ലൂപ്പ് പരാജയപ്പെടും. ഒരു ലളിതമായ പരിഹാരം തിരിക്കുക എന്നതാണ്
` എന്നതിലേക്കുള്ള സമാരംഭംf = 0.0'. അതിനാൽ ന്യൂമെറിക് വേരിയബിളുകൾ ഉപയോഗിച്ച് പ്രഖ്യാപിക്കുന്നതാണ് നല്ലത്
വ്യക്തമായ തരങ്ങൾ.
വ്യവസ്ഥാപരമായ ഭാവങ്ങൾ
A സോപാധിക പദപ്രയോഗം കൂടെ ഉപയോഗിക്കുന്നു [[ ഫയലുകളുടെ ആട്രിബ്യൂട്ടുകൾ പരിശോധിക്കുന്നതിനുള്ള സംയുക്ത കമാൻഡ്
സ്ട്രിംഗുകൾ താരതമ്യം ചെയ്യാനും. ഓരോ പദപ്രയോഗവും ഒന്നോ അതിലധികമോ പദങ്ങളിൽ നിന്ന് നിർമ്മിക്കാവുന്നതാണ്
ഇനിപ്പറയുന്ന ഏകീകൃത അല്ലെങ്കിൽ ബൈനറി പദപ്രയോഗങ്ങൾ:
-a ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്.
-b ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, ഒരു ബ്ലോക്ക് പ്രത്യേക ഫയലാണ്.
-c ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, ഒരു പ്രതീക പ്രത്യേക ഫയലാണ്.
-d ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുള്ളതും ഒരു ഡയറക്ടറിയുമാണ്.
-e ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്.
-f ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുള്ളതും ഒരു സാധാരണ ഫയലുമാണ്.
-g ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, അതിന്റെ സെറ്റ്ജിഡ് ബിറ്റ് സെറ്റ് ഉണ്ട്.
-h ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലനിൽക്കുന്നതും ഒരു പ്രതീകാത്മക ലിങ്കുമാണ്.
-k ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, അതിന്റെ സ്റ്റിക്കി ബിറ്റ് സജ്ജീകരിച്ചിരിക്കുന്നു.
-n സ്ട്രിംഗ്
ദൈർഘ്യമാണെങ്കിൽ ശരി സ്ട്രിംഗ് പൂജ്യമല്ല.
-o ഓപ്ഷൻ
ഓപ്ഷൻ പേരാണെങ്കിൽ ശരി ഓപ്ഷൻ ഓണാണ്. ഓപ്ഷൻ ഒരൊറ്റ പ്രതീകമായിരിക്കാം, ഈ സാഹചര്യത്തിൽ
ഇത് ഒരു ഒറ്റ അക്ഷര ഓപ്ഷൻ നാമമാണ്. ('ഓപ്ഷനുകൾ വ്യക്തമാക്കൽ' എന്ന വിഭാഗം കാണുക.)
-p ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, ഒരു FIFO പ്രത്യേക ഫയലാണ് (പൈപ്പ് എന്ന് പേരിട്ടിരിക്കുന്നത്).
-r ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, നിലവിലുള്ള പ്രക്രിയയാൽ വായിക്കാൻ കഴിയും.
-s ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, പൂജ്യത്തേക്കാൾ വലുതാണ്.
-t fd ഫയൽ ഡിസ്ക്രിപ്റ്റർ നമ്പറാണെങ്കിൽ ശരി fd തുറന്നതും ടെർമിനൽ ഉപകരണവുമായി ബന്ധപ്പെട്ടതുമാണ്.
(കുറിപ്പ്: fd ഓപ്ഷണൽ അല്ല)
-u ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, അതിന്റെ സെറ്റ്യൂഡ് ബിറ്റ് സെറ്റ് ഉണ്ട്.
-w ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, നിലവിലുള്ള പ്രക്രിയ പ്രകാരം എഴുതാവുന്നതാണ്.
-x ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, നിലവിലുള്ള പ്രക്രിയയിലൂടെ എക്സിക്യൂട്ട് ചെയ്യാവുന്നതാണ്. എങ്കിൽ ഫയല് നിലനിൽക്കുന്നതും എ
ഡയറക്ടറി, തുടർന്ന് നിലവിലെ പ്രോസസ്സിന് ഡയറക്ടറിയിൽ തിരയാനുള്ള അനുമതിയുണ്ട്.
-z സ്ട്രിംഗ്
ദൈർഘ്യമാണെങ്കിൽ ശരി സ്ട്രിംഗ് പൂജ്യമാണ്.
-L ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലനിൽക്കുന്നതും ഒരു പ്രതീകാത്മക ലിങ്കുമാണ്.
-O ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുള്ളതും ഈ പ്രക്രിയയുടെ ഫലപ്രദമായ ഉപയോക്തൃ ഐഡിയുടെ ഉടമസ്ഥതയിലുള്ളതുമാണ്.
-G ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, അതിന്റെ ഗ്രൂപ്പ് ഈ പ്രക്രിയയുടെ ഫലപ്രദമായ ഗ്രൂപ്പ് ഐഡിയുമായി പൊരുത്തപ്പെടുന്നു.
-S ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, ഒരു സോക്കറ്റ് ആണ്.
-N ഫയല്
ശരിയാണെങ്കിൽ ഫയല് നിലവിലുണ്ട്, അതിന്റെ പ്രവേശന സമയം അതിന്റെ പരിഷ്ക്കരണ സമയത്തേക്കാൾ പുതിയതല്ല.
file1 -nt file2
ശരിയാണെങ്കിൽ file1 നിലവിലുള്ളതും പുതിയതുമാണ് file2.
file1 -അല്ല file2
ശരിയാണെങ്കിൽ file1 നിലവിലുള്ളതും പഴയതുമാണ് file2.
file1 -എഫ് file2
ശരിയാണെങ്കിൽ file1 ഒപ്പം file2 നിലവിലുണ്ട്, അതേ ഫയലിലേക്ക് റഫർ ചെയ്യുക.
സ്ട്രിംഗ് = പാറ്റേൺ
സ്ട്രിംഗ് == പാറ്റേൺ
ശരിയാണെങ്കിൽ സ്ട്രിംഗ് മത്സരങ്ങൾ പാറ്റേൺ. ദി `=='ഫോം ആണ് മുൻഗണന. ദി `='ഫോം
പിന്നോക്ക അനുയോജ്യതയ്ക്കുള്ളതാണ്, കാലഹരണപ്പെട്ടതായി കണക്കാക്കണം.
സ്ട്രിംഗ് != പാറ്റേൺ
ശരിയാണെങ്കിൽ സ്ട്രിംഗ് ചേരുന്നില്ല പാറ്റേൺ.
സ്ട്രിംഗ് =~ regexp
ശരിയാണെങ്കിൽ സ്ട്രിംഗ് റെഗുലർ എക്സ്പ്രഷനുമായി പൊരുത്തപ്പെടുന്നു regexp. ഓപ്ഷൻ ആണെങ്കിൽ RE_MATCH_PCRE
സജ്ജമാക്കി regexp ഉപയോഗിച്ച് PCRE റെഗുലർ എക്സ്പ്രഷൻ ആയി പരീക്ഷിക്കുന്നു zsh/pcre മൊഡ്യൂൾ,
അല്ലെങ്കിൽ ഇത് ഒരു POSIX എക്സ്റ്റെൻഡഡ് റെഗുലർ എക്സ്പ്രഷൻ ആയി പരീക്ഷിക്കപ്പെടുന്നു zsh/regex
മൊഡ്യൂൾ. വിജയകരമായ പൊരുത്തം കഴിഞ്ഞാൽ, ചില വേരിയബിളുകൾ അപ്ഡേറ്റ് ചെയ്യപ്പെടും; വേരിയബിളുകൾ ഒന്നുമില്ല
പൊരുത്തപ്പെടുത്തൽ പരാജയപ്പെട്ടാൽ മാറ്റി.
ഓപ്ഷൻ ആണെങ്കിൽ BASH_REMATCH സ്കെയിലർ പാരാമീറ്റർ സജ്ജമാക്കിയിട്ടില്ല മത്സരം എന്നായി സജ്ജീകരിച്ചിരിക്കുന്നു
പാറ്റേണും പൂർണ്ണസംഖ്യ പാരാമീറ്ററുകളും പൊരുത്തപ്പെടുന്ന സബ്സ്ട്രിംഗ് MBEGIN ഒപ്പം നന്നാക്കുക ലേക്ക്
മത്സരത്തിന്റെ യഥാക്രമം തുടക്കത്തിന്റെയും അവസാനത്തിന്റെയും സൂചിക സ്ട്രിംഗ്, അങ്ങനെയെങ്കിൽ
സ്ട്രിംഗ് വേരിയബിളിൽ അടങ്ങിയിരിക്കുന്നു വേരിയബിൾ പ്രയോഗം `${var[$MBEGIN,$MEND]}' ആണ്
എന്നതിന് സമാനമാണ്$MATCH'. ഓപ്ഷന്റെ ക്രമീകരണം KSH_ARRAYS ബഹുമാനിക്കപ്പെടുന്നു.
അതുപോലെ, അറേ മത്സരം പരാൻതീസിസുമായി പൊരുത്തപ്പെടുന്ന ഉപസ്ട്രിംഗുകളിലേക്ക് സജ്ജീകരിച്ചിരിക്കുന്നു
സബ് എക്സ്പ്രഷനുകളും അറേകളും ആരംഭിക്കുക ഒപ്പം മൃദുവായ ആരംഭത്തിന്റെയും അവസാനത്തിന്റെയും സൂചികകളിലേക്ക്
സ്ഥാനങ്ങൾ, യഥാക്രമം, ഉള്ളിലെ ഉപസ്ട്രിംഗുകളുടെ സ്ട്രിംഗ്. അറേകൾ സജ്ജീകരിച്ചിട്ടില്ല
പരാൻതീസിസ് ചെയ്ത ഉപവിഷ്കാരങ്ങൾ ഇല്ലായിരുന്നുവെങ്കിൽ. ഉദാഹരണത്തിന്, സ്ട്രിംഗ് ` എങ്കിൽa
കുറിയ സ്ട്രിംഗ്' എന്ന പതിവ് പദപ്രയോഗവുമായി പൊരുത്തപ്പെടുന്നുs(...)t', പിന്നെ (ഊഹിക്കുന്നു
ഓപ്ഷൻ KSH_ARRAYS സജ്ജീകരിച്ചിട്ടില്ല) മത്സരം, MBEGIN ഒപ്പം നന്നാക്കുക ആകുന്നു `കുറിയ', 3 ഒപ്പം 7,
യഥാക്രമം, അതേസമയം മത്സരം, ആരംഭിക്കുക ഒപ്പം മൃദുവായ എന്നിവ ഉൾക്കൊള്ളുന്ന സിംഗിൾ എൻട്രി അറേകളാണ്
സ്ട്രിങ്ങുകൾ `അനാദരം', `4' ഒപ്പം '6', യഥാക്രമം.
ഓപ്ഷൻ ആണെങ്കിൽ BASH_REMATCH അറേ സജ്ജീകരിച്ചിരിക്കുന്നു BASH_REMATCH ഉപസ്ട്രിംഗിലേക്ക് സജ്ജീകരിച്ചിരിക്കുന്നു
അത് പാറ്റേണുമായി പൊരുത്തപ്പെടുന്ന ഉപസ്ട്രിംഗുകൾ പരാൻതീസിസുമായി പൊരുത്തപ്പെടുന്നു
പാറ്റേണിനുള്ളിലെ സബ് എക്സ്പ്രഷനുകൾ.
string1 < string2
ശരിയാണെങ്കിൽ string1 മുമ്പ് വരുന്നു string2 അവരുടെ പ്രതീകങ്ങളുടെ ASCII മൂല്യത്തെ അടിസ്ഥാനമാക്കി.
string1 > string2
ശരിയാണെങ്കിൽ string1 ശേഷം വരുന്നു string2 അവരുടെ പ്രതീകങ്ങളുടെ ASCII മൂല്യത്തെ അടിസ്ഥാനമാക്കി.
ex1 -eq ex2
ശരിയാണെങ്കിൽ ex1 സംഖ്യാപരമായി തുല്യമാണ് ex2. കേവലം സംഖ്യകൾക്കായി എന്നത് ശ്രദ്ധിക്കുക
താരതമ്യ ഉപയോഗം ((...)) 'അരിത്മെറ്റിക്' എന്ന വിഭാഗത്തിൽ വിവരിച്ചിരിക്കുന്ന ബിൽറ്റിൻ
സോപാധികമായ പദപ്രയോഗങ്ങളേക്കാൾ കൂടുതൽ സൗകര്യപ്രദമാണ് EVALUATION'.
ex1 -നെ ex2
ശരിയാണെങ്കിൽ ex1 സംഖ്യാപരമായി തുല്യമല്ല ex2.
ex1 -lt ex2
ശരിയാണെങ്കിൽ ex1 സംഖ്യാപരമായി കുറവാണ് ex2.
ex1 -ജിടി ex2
ശരിയാണെങ്കിൽ ex1 സംഖ്യാപരമായി വലുതാണ് ex2.
ex1 -ലെ ex2
ശരിയാണെങ്കിൽ ex1 സംഖ്യാപരമായി കുറവോ തുല്യമോ ആണ് ex2.
ex1 -ജി ex2
ശരിയാണെങ്കിൽ ex1 സംഖ്യാപരമായി വലുതോ തുല്യമോ ആണ് ex2.
( exp )
ശരിയാണെങ്കിൽ exp സത്യമാണ്.
! exp ശരിയാണെങ്കിൽ exp തെറ്റാണ്.
ex1 && ex2
ശരിയാണെങ്കിൽ ex1 ഒപ്പം ex2 രണ്ടും സത്യമാണ്.
ex1 || ex2
ഒന്നുകിൽ ശരി ex1 or ex2 സത്യമാണ്.
അനുയോജ്യതയ്ക്കായി, വാക്യഘടനാപരമായി പ്രാധാന്യമില്ലാത്ത ഒരൊറ്റ വാദം ഉണ്ടെങ്കിൽ,
സാധാരണയായി ഒരു വേരിയബിൾ, ഈ അവസ്ഥയെ എക്സ്പ്രഷൻ ആണോ എന്നതിന്റെ ഒരു ടെസ്റ്റ് ആയി കണക്കാക്കുന്നു
പൂജ്യമല്ലാത്ത നീളത്തിന്റെ ഒരു സ്ട്രിംഗായി വികസിക്കുന്നു. മറ്റൊരു വാക്കിൽ, [[ $var ]] എന്നതിന് തുല്യമാണ് [[ -n
$var ]]. സാധ്യമായ ഇടങ്ങളിൽ രണ്ടാമത്തെ, വ്യക്തമായ, ഫോം ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു.
സാധാരണ ഷെൽ വിപുലീകരണം നടത്തുന്നു ഫയല്, സ്ട്രിംഗ് ഒപ്പം പാറ്റേൺ വാദങ്ങൾ, എന്നാൽ
ഓരോ വികാസത്തിന്റെയും ഫലത്തെ ഫലത്തിന് സമാനമായ ഒരു പദമായി പരിമിതപ്പെടുത്തിയിരിക്കുന്നു
ഇരട്ട ഉദ്ധരണികൾ.
വ്യവസ്ഥകളോടുള്ള ഏതെങ്കിലും തരത്തിലുള്ള ആർഗ്യുമെന്റിൽ ഫയൽനാമം സൃഷ്ടിക്കപ്പെടുന്നില്ല. എന്നിരുന്നാലും, അത്
സാധാരണ ഷെൽ വിപുലീകരണം സാധുതയുള്ളതും ഓപ്ഷൻ എപ്പോൾ വേണമെങ്കിലും നിർബന്ധിതമാക്കാം
EXTENDED_GLOB ഫോമിന്റെ വ്യക്തമായ ഗ്ലോബ് ക്വാളിഫയർ ഉപയോഗിച്ചാണ് ഇത് പ്രാബല്യത്തിൽ വരുന്നത് (#ക്യു) അവസാനം
ചരടിന്റെ. എന്നതിന് ഇടയിൽ ഒരു സാധാരണ ഗ്ലോബ് ക്വാളിഫയർ എക്സ്പ്രഷൻ ദൃശ്യമായേക്കാംq' ഒപ്പം
ക്ലോസിംഗ് പരാൻതീസിസ്; ഒന്നും ദൃശ്യമാകുന്നില്ലെങ്കിൽ ഫയലിന്റെ പേര് ഉണ്ടാക്കുന്നതിനപ്പുറം പദപ്രയോഗത്തിന് യാതൊരു ഫലവുമില്ല
തലമുറ. ഫയൽനാമം സൃഷ്ടിക്കുന്നതിന്റെ ഫലങ്ങൾ ഒരുമിച്ച് ഒരു വാക്ക് രൂപപ്പെടുത്തുന്നു,
വിപുലീകരണത്തിന്റെ മറ്റ് രൂപങ്ങളുടെ ഫലങ്ങൾ പോലെ.
ഫയൽനാമം സൃഷ്ടിക്കുന്നതിനുള്ള ഈ പ്രത്യേക ഉപയോഗം ഇനിപ്പറയുന്നതിൽ മാത്രമേ ലഭ്യമാകൂ [[ വാക്യഘടന. എങ്കിൽ
ഉള്ളിൽ അവസ്ഥ സംഭവിക്കുന്നു [ or പരിശോധന ബിൽട്ടിൻ കമാൻഡുകൾക്ക് പകരം ഗ്ലോബിംഗ് സംഭവിക്കുന്നു
അവസ്ഥ വിലയിരുത്തുന്നതിന് മുമ്പ് സാധാരണ കമാൻഡ് ലൈൻ വിപുലീകരണത്തിന്റെ ഭാഗം. ഈ സാഹചര്യത്തിൽ അത്
ടെസ്റ്റ് കമാൻഡിന്റെ വാക്യഘടനയെ ആശയക്കുഴപ്പത്തിലാക്കാൻ സാധ്യതയുള്ള ഒന്നിലധികം വാക്കുകൾ സൃഷ്ടിച്ചേക്കാം.
ഉദാഹരണത്തിന്,
[[ -n ഫയൽ*(#qN) ]]
നിലവിലെ ഡയറക്ടറിയിൽ കുറഞ്ഞത് ഒരു ഫയലെങ്കിലും ഉണ്ടെങ്കിൽ മാത്രം സ്റ്റാറ്റസ് സീറോ നിർമ്മിക്കുന്നു
സ്ട്രിംഗിൽ ആരംഭിക്കുന്നു `ഫയല്'. ഗ്ലോബിംഗ് ക്വാളിഫയർ N എക്സ്പ്രഷൻ ആണെന്ന് ഉറപ്പാക്കുന്നു
പൊരുത്തപ്പെടുന്ന ഫയൽ ഇല്ലെങ്കിൽ ശൂന്യമാണ്.
ഇതിനായി പാറ്റേൺ മെറ്റാക്യാരക്ടറുകൾ സജീവമാണ് പാറ്റേൺ വാദങ്ങൾ; പാറ്റേണുകൾ സമാനമാണ്
ഫയൽനാമം സൃഷ്ടിക്കാൻ ഉപയോഗിക്കുന്നവ, കാണുക zshexpn(1), എന്നാൽ പ്രത്യേക സ്വഭാവം ഒന്നുമില്ല
`/' അല്ലെങ്കിൽ പ്രാരംഭ ഡോട്ടുകൾ, കൂടാതെ ഗ്ലോബ് യോഗ്യതകളൊന്നും അനുവദനീയമല്ല.
മുകളിൽ പറഞ്ഞിരിക്കുന്ന ഓരോ പദപ്രയോഗത്തിലും, എങ്കിൽ ഫയല് എന്ന രൂപത്തിലാണ്/dev/fd/n', എവിടെ n ഒരു ആണ്
പൂർണ്ണസംഖ്യ, തുടർന്ന് ഡിസ്ക്രിപ്റ്റർ നമ്പർ ഉള്ള തുറന്ന ഫയലിലേക്ക് ടെസ്റ്റ് പ്രയോഗിക്കുന്നു n, ആണെങ്കിൽ പോലും
അടിസ്ഥാന സിസ്റ്റം പിന്തുണയ്ക്കുന്നില്ല /dev/fd ഡയറക്ടറി.
സംഖ്യാ താരതമ്യം ചെയ്യുന്ന രൂപങ്ങളിൽ, പദപ്രയോഗങ്ങൾ exp ഗണിത വികാസത്തിന് വിധേയമാക്കുക
അവർ അകത്താക്കിയതുപോലെ $((...)).
ഉദാഹരണത്തിന്, ഇനിപ്പറയുന്നവ:
[[ ( -f ഫൂ || -f ബാർ ) && $റിപ്പോർട്ട് = y* ]] && അച്ചടിക്കുക ഫയല് നിലവിലുണ്ട്.
ഏതെങ്കിലും ഫയൽ ആണെങ്കിൽ പരിശോധിക്കുന്നു ഫൂ അല്ലെങ്കിൽ ഫയൽ ബാർ നിലവിലുണ്ട്, അങ്ങനെയാണെങ്കിൽ, പരാമീറ്ററിന്റെ മൂല്യം
റിപ്പോർട്ട് എന്നതിൽ തുടങ്ങുന്നുy'; പൂർണ്ണമായ വ്യവസ്ഥ ശരിയാണെങ്കിൽ, സന്ദേശം `ഫയല് നിലവിലുണ്ട്.' ആണ്
അച്ചടിച്ചു.
EXPANSION OF പ്രോംപ്റ്റ് സീക്വൻസുകൾ
പ്രോംപ്റ്റ് സീക്വൻസുകൾ ഒരു പ്രത്യേക വിപുലീകരണത്തിന് വിധേയമാകുന്നു. ഈ തരത്തിലുള്ള വിപുലീകരണവും ഉണ്ട്
ഉപയോഗിച്ച് ലഭ്യമാണ് -P എന്ന ഓപ്ഷൻ അച്ചടിക്കുക ബിൽട്ടിൻ.
എങ്കില് PROMPT_SUBST ഓപ്ഷൻ സജ്ജീകരിച്ചു, പ്രോംപ്റ്റ് സ്ട്രിംഗ് ആദ്യം വിധേയമാകുന്നു പാരാമീറ്റർ
വിപുലീകരണം, കമാൻഡ് ബദൽ ഒപ്പം അങ്കഗണിതം വിപുലീകരണം. കാണുക zshexpn(1).
ചില എസ്കേപ്പ് സീക്വൻസുകൾ പ്രോംപ്റ്റ് സ്ട്രിംഗിൽ തിരിച്ചറിഞ്ഞേക്കാം.
എങ്കില് PROMPT_BANG ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു, a `!' പ്രോംപ്റ്റിൽ നിലവിലെ ചരിത്രം മാറ്റിസ്ഥാപിക്കുന്നു
ഇവന്റ് നമ്പർ. ഒരു അക്ഷരാർത്ഥത്തിൽ `!' തുടർന്ന് ' എന്ന് പ്രതിനിധീകരിക്കാം!!'.
എങ്കില് PROMPT_PERCENT ഓപ്ഷൻ സജ്ജീകരിച്ചിരിക്കുന്നു, ` എന്ന് തുടങ്ങുന്ന ചില എസ്കേപ്പ് സീക്വൻസുകൾ%' ആകുന്നു
വിപുലപ്പെടുത്തി. പല രക്ഷപ്പെടലുകളും ഒരൊറ്റ പ്രതീകം പിന്തുടരുന്നു, എന്നിരുന്നാലും ഇവയിൽ ചിലത് ഒരു പ്രതീകം എടുക്കുന്നു
എന്നതിന് ഇടയിൽ ദൃശ്യമാകുന്ന ഓപ്ഷണൽ പൂർണ്ണസംഖ്യ ആർഗ്യുമെന്റ്%യുടെ അടുത്ത കഥാപാത്രവും
ക്രമം. സോപാധികമായി നൽകാൻ കൂടുതൽ സങ്കീർണ്ണമായ രക്ഷപ്പെടൽ സീക്വൻസുകൾ ലഭ്യമാണ്
വിപുലീകരണം
SIMPLE പ്രോംപ്റ്റ് എസ്കേപ്പുകൾ
പ്രത്യേക പ്രതീകങ്ങൾ
%% എ `%'.
%) എ `)'.
ലോഗിൻ വിവരം
%l ഉപയോക്താവ് ലോഗ് ഇൻ ചെയ്തിരിക്കുന്ന വരി (tty) ` ഇല്ലാതെ/ dev /' ഉപസർഗ്ഗം. പേരാണെങ്കിൽ
എന്നതിൽ തുടങ്ങുന്നു/dev/tty', ആ പ്രിഫിക്സ് നീക്കം ചെയ്തു.
%M മുഴുവൻ മെഷീൻ ഹോസ്റ്റ്നാമം.
%m ആദ്യത്തേത് വരെയുള്ള ഹോസ്റ്റ്നാമം `.'. ഒരു പൂർണ്ണസംഖ്യ ` എന്നതിനെ പിന്തുടരാം%' എങ്ങനെയെന്ന് വ്യക്തമാക്കാൻ
ഹോസ്റ്റ്നാമത്തിന്റെ പല ഘടകങ്ങളും ആവശ്യമാണ്. ഒരു നെഗറ്റീവ് പൂർണ്ണസംഖ്യ ഉപയോഗിച്ച്, പിന്നിൽ
ഹോസ്റ്റ്നാമത്തിന്റെ ഘടകങ്ങൾ കാണിക്കുന്നു.
%n $USERNAME.
%y ഉപയോക്താവ് ലോഗ് ഇൻ ചെയ്തിരിക്കുന്ന വരി (tty) ` ഇല്ലാതെ/ dev /' ഉപസർഗ്ഗം. ഇത് ചെയ്യുന്നില്ല
ചികിത്സിക്കുക `/dev/tty'പേരുകൾ പ്രത്യേകം.
ഷെൽ സംസ്ഥാനം
%# എ `#' ഷെൽ പ്രത്യേകാവകാശങ്ങളോടെയാണ് പ്രവർത്തിക്കുന്നതെങ്കിൽ, a `%' അല്ലെങ്കിൽ. തുല്യമായ
`%(!.#.%%)'. ഈ ആവശ്യങ്ങൾക്കായുള്ള `പ്രിവിലേജ്ഡ്' എന്നതിന്റെ നിർവചനം, ഒന്നുകിൽ
ഫലപ്രദമായ ഉപയോക്തൃ ഐഡി പൂജ്യമാണ്, അല്ലെങ്കിൽ, POSIX.1e കഴിവുകൾ പിന്തുണയ്ക്കുന്നുവെങ്കിൽ,
ഏറ്റവും കുറഞ്ഞത് ഒരു കഴിവ്, ഒന്നുകിൽ ഫലപ്രദമായ അല്ലെങ്കിൽ അനന്തരാവകാശമായ കഴിവിൽ ഉയർന്നുവരുന്നു
വെക്റ്ററുകൾ.
%? പ്രോംപ്റ്റിന് തൊട്ടുമുമ്പ് എക്സിക്യൂട്ട് ചെയ്ത അവസാന കമാൻഡിന്റെ റിട്ടേൺ സ്റ്റാറ്റസ്.
%_ പാഴ്സറിന്റെ നില, അതായത് ഷെൽ കൺസ്ട്രക്റ്റുകൾ (' പോലെif' ഒപ്പം 'വേണ്ടി') ഉണ്ട്
കമാൻഡ് ലൈനിൽ ആരംഭിച്ചു. ഒരു പൂർണ്ണസംഖ്യ നൽകിയാൽ അത്രയും സ്ട്രിംഗുകൾ ഉണ്ടാകും
അച്ചടിക്കുക; പൂജ്യം അല്ലെങ്കിൽ നെഗറ്റീവ് അല്ലെങ്കിൽ പൂർണ്ണസംഖ്യ ഇല്ല എന്നതിനർത്ഥം ഉള്ളത്ര പ്രിന്റ് ചെയ്യുക എന്നാണ്. ഈ
നിർദ്ദേശങ്ങളിൽ ഏറ്റവും ഉപയോഗപ്രദമാണ് PS2 തുടർച്ച ലൈനുകൾക്കും PS4 ഉപയോഗിച്ച് ഡീബഗ്ഗിംഗിന്
എക്സ്ട്രേസ് ഓപ്ഷൻ; പിന്നീടുള്ള സന്ദർഭത്തിൽ ഇത് പരസ്പരവിരുദ്ധമായും പ്രവർത്തിക്കും.
%^ വിപരീത ദിശയിലുള്ള പാർസറിന്റെ നില. ഇത് തന്നെയാണ് `%_' ഓർഡർ അല്ലാതെ
ചരടുകളുടെ. ഇത് പലപ്പോഴും ഉപയോഗിക്കുന്നു RPS2.
%d
%/ നിലവിലെ പ്രവർത്തന ഡയറക്ടറി. ഒരു പൂർണ്ണസംഖ്യ ` എന്നതിനെ പിന്തുടരുകയാണെങ്കിൽ%', അത് ഒരു എണ്ണം വ്യക്തമാക്കുന്നു
കാണിക്കാനുള്ള നിലവിലെ വർക്കിംഗ് ഡയറക്ടറിയുടെ ട്രെയിലിംഗ് ഘടകങ്ങൾ; പൂജ്യം എന്നാൽ മുഴുവൻ എന്നാണ്
പാത. ഒരു നെഗറ്റീവ് പൂർണ്ണസംഖ്യ മുൻനിര ഘടകങ്ങളെ വ്യക്തമാക്കുന്നു, അതായത് %-1d വ്യക്തമാക്കുന്നു
ആദ്യ ഘടകം.
%~ As %d ഒപ്പം %/, എന്നാൽ നിലവിലെ പ്രവർത്തന ഡയറക്ടറി ആരംഭിക്കുകയാണെങ്കിൽ $ HOME, ആ ഭാഗം
പകരം ഒരു `~'. കൂടാതെ, അതിന്റെ പ്രിഫിക്സായി പേരുള്ള ഒരു ഡയറക്ടറി ഉണ്ടെങ്കിൽ, അത്
ഭാഗത്തിന് പകരം ഒരു `~' എന്നതിന് ശേഷം ഡയറക്ടറിയുടെ പേര്, എന്നാൽ എങ്കിൽ മാത്രം
ഫലം മുഴുവൻ പാതയേക്കാൾ ചെറുതാണ്; കാണുക ഡൈനാമിക് ഒപ്പം സ്റ്റാറ്റിക് പേരുനൽകിയത് ഡയറക്ടറികൾ in
zshexpn(1).
%e നിലവിലെ ഉറവിട ഫയലിന്റെ മൂല്യനിർണ്ണയ ആഴം, ഷെൽ ഫംഗ്ഷൻ അല്ലെങ്കിൽ പരിണാമം. ഇതാണ്
ഓരോ തവണയും മൂല്യം വർദ്ധിപ്പിക്കുകയോ കുറയുകയോ ചെയ്യുന്നു %N a ആയി സജ്ജീകരിക്കുകയോ പുനഃസ്ഥാപിക്കുകയോ ചെയ്യുന്നു
യഥാക്രമം മുൻ മൂല്യം. ഇതിന്റെ ഭാഗമായി ഡീബഗ്ഗിംഗിന് ഇത് ഏറ്റവും ഉപയോഗപ്രദമാണ് $PS4.
%h
%! നിലവിലെ ചരിത്ര ഇവന്റ് നമ്പർ.
%i സ്ക്രിപ്റ്റിലോ ഉറവിട ഫയലിലോ ഷെല്ലിലോ നിലവിൽ എക്സിക്യൂട്ട് ചെയ്തിരിക്കുന്ന ലൈൻ നമ്പർ
ഫംഗ്ഷൻ നൽകിയത് %N. ഇതിന്റെ ഭാഗമായി ഡീബഗ്ഗിംഗിന് ഇത് ഏറ്റവും ഉപയോഗപ്രദമാണ് $PS4.
%I ഫയലിൽ നിലവിൽ എക്സിക്യൂട്ട് ചെയ്യുന്ന ലൈൻ നമ്പർ %x. ഇത് സമാനമാണ് %i,
എന്നാൽ കോഡ് നിർവചിച്ചിരിക്കുന്ന ഫയലിലെ ലൈൻ നമ്പർ എപ്പോഴും ഒരു ലൈൻ നമ്പറാണ്,
കോഡ് ഒരു ഷെൽ ഫംഗ്ഷൻ ആണെങ്കിൽ പോലും.
%j ജോലികളുടെ എണ്ണം.
%L നിലവിലെ മൂല്യം $SHLVL.
%N zsh നിലവിൽ ഉള്ള സ്ക്രിപ്റ്റിന്റെയോ ഉറവിട ഫയലിന്റെയോ ഷെൽ ഫംഗ്ഷന്റെയോ പേര്
നടപ്പിലാക്കുന്നത്, ഏറ്റവുമൊടുവിൽ ആരംഭിച്ചത്. ഒന്നുമില്ലെങ്കിൽ, ഇതാണ്
പരാമീറ്ററിന് തുല്യമാണ് $0. ഒരു പൂർണ്ണസംഖ്യ ` എന്നതിനെ പിന്തുടരാം%ഒരു നമ്പർ വ്യക്തമാക്കാൻ
കാണിക്കാനുള്ള ട്രെയിലിംഗ് പാത്ത് ഘടകങ്ങളുടെ; പൂജ്യം എന്നാൽ പൂർണ്ണമായ പാത എന്നാണ് അർത്ഥമാക്കുന്നത്. ഒരു നെഗറ്റീവ് പൂർണ്ണസംഖ്യ
മുൻനിര ഘടകങ്ങൾ വ്യക്തമാക്കുന്നു.
%x നിലവിൽ എക്സിക്യൂട്ട് ചെയ്യുന്ന സോഴ്സ് കോഡ് അടങ്ങിയ ഫയലിന്റെ പേര്. ഈ
ആയി പെരുമാറുന്നു %N ഫംഗ്ഷന്റെയും eval കമാൻഡിന്റെയും പേരുകൾ കാണിക്കുന്നില്ല എന്നതൊഴിച്ചാൽ, പകരം
അവ നിർവചിക്കപ്പെട്ട ഫയൽ.
%c
%.
%C നിലവിലെ പ്രവർത്തിക്കുന്ന ഡയറക്ടറിയുടെ ട്രെയിലിംഗ് ഘടകം. ഒരു പൂർണ്ണസംഖ്യ ` എന്നതിനെ പിന്തുടരാം%'
ഒന്നിലധികം ഘടകങ്ങൾ ലഭിക്കുന്നതിന്. അല്ലാതെ `%C' ഉപയോഗിക്കുന്നു, ടിൽഡ് സങ്കോചം ആണ്
ആദ്യം നിർവഹിച്ചു. ഇവയെ ഇങ്ങനെ ഒഴിവാക്കിയിരിക്കുന്നു %c ഒപ്പം %C തുല്യമാണ് % 1~ ഒപ്പം % 1/,
യഥാക്രമം, വ്യക്തമായ പോസിറ്റീവ് പൂർണ്ണസംഖ്യകൾക്ക് അതേ ഫലമുണ്ട്
പിന്നീടുള്ള രണ്ട് സീക്വൻസുകൾ.
തീയതി ഒപ്പം കാലം
%D തീയതി yy-mm-dd ഫോർമാറ്റ്.
%T ദിവസത്തിലെ നിലവിലെ സമയം, 24 മണിക്കൂർ ഫോർമാറ്റിൽ.
%t
%@ ദിവസത്തിലെ നിലവിലെ സമയം, 12-മണിക്കൂർ, am/pm ഫോർമാറ്റിൽ.
%* 24-മണിക്കൂർ ഫോർമാറ്റിൽ, സെക്കൻഡുകൾക്കൊപ്പം നിലവിലെ ദിവസ സമയം.
%w തീയതി ദിവസം-dd ഫോർമാറ്റ്.
%W തീയതി mm/dd/yy ഫോർമാറ്റ്.
%D{സ്ട്രിംഗ്}
സ്ട്രിംഗ് ഉപയോഗിച്ച് ഫോർമാറ്റ് ചെയ്തിരിക്കുന്നു strftime പ്രവർത്തനം. കാണുക strftime(3) കൂടുതൽ വിവരങ്ങൾക്ക്.
വിവിധ zsh വിപുലീകരണങ്ങൾ മുൻനിര പൂജ്യമോ സംഖ്യയാണെങ്കിൽ സ്ഥലമോ ഇല്ലാത്ത സംഖ്യകൾ നൽകുന്നു
ഒറ്റ അക്കമാണ്:
%f മാസത്തിലെ ഒരു ദിവസം
%K 24 മണിക്കൂർ ഘടികാരത്തിൽ പകലിന്റെ മണിക്കൂർ
%L 12 മണിക്കൂർ ഘടികാരത്തിൽ പകലിന്റെ മണിക്കൂർ
കൂടാതെ, സിസ്റ്റം POSIX-നെ പിന്തുണയ്ക്കുന്നുവെങ്കിൽ കിട്ടുന്ന സമയം സിസ്റ്റം കോൾ, %. നൽകുന്നു
മുൻനിര പൂജ്യങ്ങളുള്ള കാലഘട്ടം മുതൽ ഒരു സെക്കൻഡിന്റെ ദശാംശ ഭിന്നസംഖ്യകൾ. സ്ഥിരസ്ഥിതിയായി
മൂന്ന് ദശാംശ സ്ഥാനങ്ങൾ നൽകിയിട്ടുണ്ട്, എന്നാൽ 6 വരെയുള്ള അക്കങ്ങളുടെ എണ്ണം നൽകാം
പിന്തുടരുന്ന %; അതിനാൽ % 6. ഔട്ട്പുട്ട് മൈക്രോസെക്കൻഡ്. ഇതിന്റെ ഒരു സാധാരണ ഉദാഹരണമാണ്
ഫോർമാറ്റ് `%D{%H:%M:%S.%.}'.
ഗ്നു വിപുലീകരണം ഒരു `-' ഇടയിൽ % കൂടാതെ ഫോർമാറ്റ് പ്രതീകം a കാരണമാകുന്നു
മുൻനിര പൂജ്യം അല്ലെങ്കിൽ സ്ട്രിപ്പ് ചെയ്യേണ്ട സ്ഥലം നേരിട്ട് ഷെൽ കൈകാര്യം ചെയ്യുന്നു
ഫോർമാറ്റ് പ്രതീകങ്ങൾ d, f, H, k, l, m, M, S ഒപ്പം y; മറ്റേതെങ്കിലും ഫോർമാറ്റ് പ്രതീകങ്ങളാണ്
സിസ്റ്റത്തിന് നൽകിയിട്ടുണ്ട് strftime(3) ഏതെങ്കിലും പ്രമുഖനോടൊപ്പം `-' നിലവിലുണ്ട്, അതിനാൽ കൈകാര്യം ചെയ്യൽ
സിസ്റ്റത്തെ ആശ്രയിച്ചിരിക്കുന്നു. കൂടുതൽ ഗ്നു (അല്ലെങ്കിൽ മറ്റ്) വിപുലീകരണങ്ങളും കൈമാറുന്നു
strftime(3) സിസ്റ്റം അവരെ പിന്തുണയ്ക്കുന്നുവെങ്കിൽ പ്രവർത്തിക്കാം.
വിഷ്വൽ ഇഫക്റ്റുകൾ
%B (%b)
ബോൾഡ്ഫേസ് മോഡ് ആരംഭിക്കുക (നിർത്തുക).
%E വരിയുടെ അവസാനം വരെ വ്യക്തമാണ്.
%U (%u)
അടിവരയിടൽ മോഡ് ആരംഭിക്കുക (നിർത്തുക).
%S (%s)
സ്റ്റാൻഡ്ഔട്ട് മോഡ് ആരംഭിക്കുക (നിർത്തുക).
%F (%f)
ടെർമിനൽ പിന്തുണയ്ക്കുകയാണെങ്കിൽ, മറ്റൊരു ഫോർഗ്രൗണ്ട് നിറം ഉപയോഗിച്ച് ആരംഭിക്കുക (നിർത്തുക).
നിറം രണ്ട് തരത്തിൽ വ്യക്തമാക്കാം: ഒന്നുകിൽ ഒരു സംഖ്യാ വാദമായി, സാധാരണ പോലെ, അല്ലെങ്കിൽ
ഇനിപ്പറയുന്ന ബ്രേസുകളിലെ ഒരു ക്രമം %F, ഉദാഹരണത്തിന് %F{ചുവപ്പ്}. പിന്നീടുള്ള കേസിൽ
അനുവദനീയമായ മൂല്യങ്ങൾ വിവരിച്ചിരിക്കുന്നത് പോലെയാണ് fg zle_ഹൈലൈറ്റ് ആട്രിബ്യൂട്ട്; കാണുക
കഥാപാത്രം ഹൈലൈറ്റിംഗ് in zshzle(1). ഇതിനർത്ഥം സംഖ്യാ നിറങ്ങൾ അനുവദനീയമാണ് എന്നാണ്
രണ്ടാമത്തെ ഫോർമാറ്റിലും.
%K (%k)
മറ്റൊരു പശ്ചാത്തല നിറം ഉപയോഗിച്ച് ആരംഭിക്കുക (നിർത്തുക). വാക്യഘടന അതിന് സമാനമാണ്
വേണ്ടി %F ഒപ്പം %f.
%{...%}
അക്ഷരാർത്ഥത്തിൽ രക്ഷപ്പെടൽ ക്രമമായി ഒരു സ്ട്രിംഗ് ഉൾപ്പെടുത്തുക. ബ്രേസുകൾക്കുള്ളിലെ സ്ട്രിംഗ് വേണം
കഴ്സർ സ്ഥാനം മാറ്റരുത്. ബ്രേസ് ജോഡികൾക്ക് കൂടുണ്ടാക്കാം.
തമ്മിലുള്ള ഒരു പോസിറ്റീവ് സംഖ്യാ വാദം % ഒപ്പം { വിവരിച്ചിരിക്കുന്നതുപോലെ ചികിത്സിക്കുന്നു %G
താഴെ.
%G ഒരു %{...%} ക്രമത്തിൽ, ഒരു `ഗ്ലിച്ച്' ഉൾപ്പെടുന്നു: അതായത്, ഒരു സിംഗിൾ എന്ന് കരുതുക
പ്രതീക വീതി ഔട്ട്പുട്ട് ആയിരിക്കും. പ്രതീകങ്ങൾ ഔട്ട്പുട്ട് ചെയ്യുമ്പോൾ ഇത് ഉപയോഗപ്രദമാണ്
അല്ലെങ്കിൽ ഇതര പ്രതീകം പോലുള്ള ഷെല്ലിന് ശരിയായി കൈകാര്യം ചെയ്യാൻ കഴിയില്ല
ചില ടെർമിനലുകളിൽ സജ്ജീകരിച്ചിരിക്കുന്നു. പ്രസ്തുത കഥാപാത്രങ്ങളെ a ഉള്ളിൽ ഉൾപ്പെടുത്താം %{...%}
ഉചിതമായ സംഖ്യയുമായി ക്രമപ്പെടുത്തുക %G സൂചിപ്പിക്കാനുള്ള ക്രമങ്ങൾ
ശരിയായ വീതി. എന്നതിന് ഇടയിലുള്ള ഒരു പൂർണ്ണസംഖ്യ%' ഒപ്പം 'G' പ്രതീകത്തിന്റെ വീതിയെ സൂചിപ്പിക്കുന്നു
ഒന്നല്ലാതെ. അതുകൊണ്ട് %{സെക്%2G%} ഔട്ട്പുട്ട് സെക് യുടെ വീതി ഏറ്റെടുക്കുകയും ചെയ്യുന്നു
രണ്ട് സ്റ്റാൻഡേർഡ് പ്രതീകങ്ങൾ.
ഒന്നിലധികം ഉപയോഗങ്ങൾ %G വ്യക്തമായ രീതിയിൽ ശേഖരിക്കുക; യുടെ സ്ഥാനം %G is
അപ്രധാനമായ. നെഗറ്റീവ് പൂർണ്ണസംഖ്യകൾ കൈകാര്യം ചെയ്യപ്പെടുന്നില്ല.
പെട്ടെന്നുള്ള വെട്ടിച്ചുരുക്കൽ ഉപയോഗത്തിലായിരിക്കുമ്പോൾ, ഔട്ട്പുട്ടിനെ വിഭജിക്കുന്നതാണ് ഉചിതമെന്നത് ശ്രദ്ധിക്കുക
ഓരോന്നിലും ഒറ്റ കഥാപാത്രങ്ങൾ %{...%} ഗ്രൂപ്പ് അങ്ങനെ ശരിയായ വെട്ടിച്ചുരുക്കൽ പോയിന്റ്
കണ്ടുപിടിക്കാവുന്നതാണ്.
വ്യവസ്ഥാപരമായ SUBSTRINGS IN നിർദ്ദേശങ്ങൾ
%v യുടെ ആദ്യ മൂലകത്തിന്റെ മൂല്യം psvar അറേ പാരാമീറ്റർ. പിന്തുടരുന്നത് `%'
ഒരു പൂർണ്ണസംഖ്യ ഉപയോഗിച്ച് അറേയുടെ ആ ഘടകം നൽകുന്നു. നെഗറ്റീവ് പൂർണ്ണസംഖ്യകൾ ഇതിൽ നിന്ന് കണക്കാക്കുന്നു
അറേയുടെ അവസാനം.
%(x.യഥാർത്ഥ വാചകം.തെറ്റായ വാചകം)
ഒരു ത്രിമാന പദപ്രയോഗം വ്യക്തമാക്കുന്നു. പിന്തുടരുന്ന കഥാപാത്രം x ഏകപക്ഷീയമാണ്; ദി
'ശരി' ഫലത്തിനായുള്ള വാചകത്തെ വേർതിരിക്കാൻ അതേ പ്രതീകം ഉപയോഗിക്കുന്നു
`തെറ്റായ' ഫലം. ഈ സെപ്പറേറ്റർ ദൃശ്യമാകണമെന്നില്ല യഥാർത്ഥ വാചകം, ഭാഗമായി ഒഴികെ
ഒരു %-എസ്കേപ്പ് സീക്വൻസ്. എ `)' എന്നതിൽ പ്രത്യക്ഷപ്പെടാം തെറ്റായ വാചകം എന്ന നിലയിൽ `%)'. യഥാർത്ഥ വാചകം ഒപ്പം
തെറ്റായ വാചകം രണ്ടിലും അനിയന്ത്രിതമായ-നെസ്റ്റഡ് എസ്കേപ്പ് സീക്വൻസുകൾ അടങ്ങിയിരിക്കാം
ത്രിതല പദപ്രയോഗങ്ങൾ.
ഇടത് പരാന്തീസിസിന് ഒരു പോസിറ്റീവ് പൂർണ്ണസംഖ്യ മുമ്പോ പിന്തുടരുകയോ ചെയ്യാം nഏത്
സ്ഥിരസ്ഥിതി പൂജ്യത്തിലേക്ക്. സൂചിപ്പിച്ചതുപോലെ ഒരു നെഗറ്റീവ് പൂർണ്ണസംഖ്യ -1 കൊണ്ട് ഗുണിക്കും
എന്നതിന് താഴെl'. പരീക്ഷണ സ്വഭാവം x ഇനിപ്പറയുന്നവയിൽ ഏതെങ്കിലും ആകാം:
! ഷെൽ പ്രത്യേകാവകാശങ്ങളോടെയാണ് പ്രവർത്തിക്കുന്നതെങ്കിൽ ശരിയാണ്.
# നിലവിലെ പ്രക്രിയയുടെ ഫലപ്രദമായ uid ആണെങ്കിൽ ശരിയാണ് n.
? അവസാന കമാൻഡിന്റെ എക്സിറ്റ് സ്റ്റാറ്റസ് ആണെങ്കിൽ ശരിയാണ് n.
_ കുറഞ്ഞത് ആണെങ്കിൽ ശരി n ഷെൽ നിർമ്മാണം ആരംഭിച്ചു.
C
/ നിലവിലെ സമ്പൂർണ്ണ പാതയിൽ കുറഞ്ഞത് ഉണ്ടെങ്കിൽ ശരിയാണ് n എന്നതുമായി ബന്ധപ്പെട്ട ഘടകങ്ങൾ
റൂട്ട് ഡയറക്ടറി, അതിനാൽ / 0 ഘടകങ്ങളായി കണക്കാക്കുന്നു.
c
.
~ പ്രിഫിക്സ് റീപ്ലേസ്മെന്റോടുകൂടിയ നിലവിലെ പാതയിൽ കുറഞ്ഞത് ഉണ്ടെങ്കിൽ ശരിയാണ് n ഘടകങ്ങൾ
റൂട്ട് ഡയറക്ടറിയുമായി ബന്ധപ്പെട്ട്, അതിനാൽ / 0 ഘടകങ്ങളായി കണക്കാക്കുന്നു.
D മാസം തുല്യമാണെങ്കിൽ ശരി n (ജനുവരി = 0).
d മാസത്തിലെ ദിവസം തുല്യമാണെങ്കിൽ ശരിയാണ് n.
e മൂല്യനിർണ്ണയ ആഴം കുറഞ്ഞത് ആണെങ്കിൽ ശരിയാണ് n.
g നിലവിലെ പ്രക്രിയയുടെ ഫലപ്രദമായ gid ആണെങ്കിൽ ശരിയാണ് n.
j ജോലികളുടെ എണ്ണം കുറഞ്ഞത് ആണെങ്കിൽ ശരിയാണ് n.
L ശരിയാണെങ്കിൽ എസ്.എച്ച്.എൽ.വി.എൽ പരാമീറ്റർ കുറഞ്ഞത് ആണ് n.
l കുറഞ്ഞത് ആണെങ്കിൽ ശരി n നിലവിലെ വരിയിൽ അക്ഷരങ്ങൾ ഇതിനകം അച്ചടിച്ചിട്ടുണ്ട്.
എപ്പോൾ n നെഗറ്റീവ് ആണ്, കുറഞ്ഞത് ശരിയാണെങ്കിൽ abs(n) കഥാപാത്രങ്ങൾ മുമ്പിൽ അവശേഷിക്കുന്നു
എതിർ മാർജിൻ (അങ്ങനെ ഇടത് മാർജിൻ RPROMPT).
S ശരിയാണെങ്കിൽ സെക്കൻഡ് പരാമീറ്റർ കുറഞ്ഞത് ആണ് n.
T മണിക്കൂറുകളിലെ സമയം തുല്യമാണെങ്കിൽ ശരിയാണ് n.
t മിനിറ്റുകളിലെ സമയം തുല്യമാണെങ്കിൽ ശരിയാണ് n.
v അറേ ആണെങ്കിൽ ശരി psvar കുറഞ്ഞത് ഉണ്ട് n ഘടകങ്ങൾ.
V മൂലകമാണെങ്കിൽ ശരി n അറേയുടെ psvar സജ്ജീകരിച്ചിരിക്കുന്നു, ശൂന്യമല്ല.
w ആഴ്ചയിലെ ദിവസം തുല്യമാണെങ്കിൽ ശരിയാണ് n (ഞായർ = 0).
%<സ്ട്രിംഗ്<
%>സ്ട്രിംഗ്>
%[xstring]
പ്രോംപ്റ്റ് സ്ട്രിംഗിന്റെ ശേഷിക്കുന്ന ഭാഗങ്ങൾക്കായി വെട്ടിച്ചുരുക്കൽ സ്വഭാവം വ്യക്തമാക്കുന്നു. മൂന്നാമത്തെ,
ഒഴിവാക്കി, ഫോം ` എന്നതിന് തുല്യമാണ്%xstringx', അതായത് x ആയിരിക്കാം `<' അല്ലെങ്കിൽ '>'. ദി
സ്ട്രിംഗ് ഏതെങ്കിലും സ്ട്രിംഗിന്റെ വെട്ടിച്ചുരുക്കിയ ഭാഗത്തിന്റെ സ്ഥാനത്ത് പ്രദർശിപ്പിക്കും; ഇത് ശ്രദ്ധിക്കുക
പെട്ടെന്നുള്ള വിപുലീകരണത്തിന് വിധേയമാകുന്നില്ല.
സംഖ്യാ വാദം, മൂന്നാമത്തെ രൂപത്തിൽ ` എന്നതിന് തൊട്ടുപിന്നാലെ ദൃശ്യമാകാം[',
പ്രദർശിപ്പിക്കാൻ കഴിയുന്ന വിവിധ സ്ട്രിംഗുകളുടെ അനുവദനീയമായ പരമാവധി ദൈർഘ്യം വ്യക്തമാക്കുന്നു
പ്രോംപ്റ്റിൽ. ആദ്യ രണ്ട് രൂപങ്ങളിൽ, ഈ സംഖ്യാ വാദം നെഗറ്റീവ് ആയിരിക്കാം, ഇൻ
ഏത് സാഹചര്യത്തിലാണ് വെട്ടിച്ചുരുക്കലിന്റെ ദൈർഘ്യം നിർണ്ണയിക്കുന്നത് എന്നതിന്റെ കേവല മൂല്യം കുറച്ചാണ്
ശേഷിക്കുന്ന പ്രതീക സ്ഥാനങ്ങളുടെ എണ്ണത്തിൽ നിന്നുള്ള സംഖ്യാ വാദം
നിലവിലെ പ്രോംപ്റ്റ് ലൈൻ. ഇത് പൂജ്യം അല്ലെങ്കിൽ നെഗറ്റീവ് ദൈർഘ്യത്തിൽ കലാശിക്കുന്നുവെങ്കിൽ, ദൈർഘ്യം 1
ഉപയോഗിക്കുന്നു. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ഒരു നിഷേധാത്മക വാദം, വെട്ടിക്കുറച്ചതിന് ശേഷം ക്രമീകരിക്കുന്നു
കുറഞ്ഞത് n അക്ഷരങ്ങൾ വലത് മാർജിന് മുമ്പായി അവശേഷിക്കുന്നു (ഇടത് മാർജിൻ RPROMPT).
ഫോമുകൾ "<' സ്ട്രിംഗിന്റെ ഇടതുവശത്ത് വെട്ടിച്ചുരുക്കുക, ഒപ്പം ഫോമുകൾ `>'
സ്ട്രിംഗിന്റെ വലതുവശത്ത് വെട്ടിച്ചുരുക്കുക. ഉദാഹരണത്തിന്, നിലവിലെ ഡയറക്ടറി ആണെങ്കിൽ
`/വീട്/പൈക്ക്', നിർദ്ദേശം '%8<..<%/' എന്നതിലേക്ക് വികസിപ്പിക്കും..ഇ/പൈക്ക്'. ഈ സ്ട്രിംഗിൽ, ദി
അവസാനിപ്പിക്കുന്ന പ്രതീകം (`<', `>' അല്ലെങ്കിൽ ']'), അല്ലെങ്കിൽ വാസ്തവത്തിൽ ഏതെങ്കിലും കഥാപാത്രം ഉദ്ധരിക്കാം
മുമ്പുള്ള ഒരു `\'; ഉപയോഗിക്കുമ്പോൾ ശ്രദ്ധിക്കുക അച്ചടിക്കുക -Pഎന്നിരുന്നാലും, ഇത് ഇരട്ടിയാക്കണം
സ്ട്രിംഗും സ്റ്റാൻഡേർഡിന് വിധേയമാണ് അച്ചടിക്കുക പ്രോസസ്സിംഗ്, ഏതെങ്കിലും പുറമേ
ഒരു ഇരട്ട ഉദ്ധരണി സ്ട്രിംഗ് ഉപയോഗിച്ച് ബാക്ക്സ്ലാഷുകൾ നീക്കം ചെയ്തു: ഏറ്റവും മോശം കാര്യം അതിനാൽ `അച്ചടിക്കുക
-P "%<\\\\<<..."'.
എങ്കില് സ്ട്രിംഗ് നിർദ്ദിഷ്ട വെട്ടിച്ചുരുക്കൽ ദൈർഘ്യത്തേക്കാൾ ദൈർഘ്യമേറിയതാണ്, അത് ദൃശ്യമാകും
പൂർണ്ണമായി, വെട്ടിച്ചുരുക്കിയ സ്ട്രിംഗ് പൂർണ്ണമായും മാറ്റിസ്ഥാപിക്കുന്നു.
വെട്ടിച്ചുരുക്കേണ്ട പ്രോംപ്റ്റ് സ്ട്രിംഗിന്റെ ഭാഗം സ്ട്രിംഗിന്റെ അവസാനം വരെ അല്ലെങ്കിൽ
എന്നതിന്റെ അടുത്ത എൻക്ലോസിംഗ് ഗ്രൂപ്പിന്റെ അവസാനം%(' നിർമ്മിക്കുക, അല്ലെങ്കിൽ അടുത്തതിലേക്ക്
ഒരേ ഗ്രൂപ്പിംഗ് തലത്തിൽ നേരിടുന്ന വെട്ടിച്ചുരുക്കൽ (അതായത്, ഒരു ` എന്നതിനുള്ളിലെ വെട്ടിച്ചുരുക്കലുകൾ%('
വെവ്വേറെയാണ്), ഏതാണ് ആദ്യം വരുന്നത്. പ്രത്യേകിച്ചും, വാദത്തോടുകൂടിയ ഒരു വെട്ടിച്ചുരുക്കൽ
പൂജ്യം (ഉദാ, `%<') വെട്ടിച്ചുരുക്കേണ്ട സ്ട്രിംഗിന്റെ പരിധിയുടെ അവസാനം അടയാളപ്പെടുത്തുന്നു
അവിടെ നിന്ന് വെട്ടിച്ചുരുക്കൽ ഓഫ് ചെയ്യുന്നു. ഉദാഹരണത്തിന്, പ്രോംപ്റ്റ് `%10<...<%~%<<%# '
നിലവിലെ ഡയറക്ടറിയുടെ വെട്ടിച്ചുരുക്കിയ പ്രാതിനിധ്യം പ്രിന്റ് ചെയ്യും, തുടർന്ന് ഒരു `%'
അല്ലെങ്കിൽ `#', തുടർന്ന് ഒരു സ്പെയ്സ്. കൂടാതെ `%<', ആ രണ്ട് കഥാപാത്രങ്ങൾ ആയിരിക്കും
വെട്ടിച്ചുരുക്കാനുള്ള സ്ട്രിംഗിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ശ്രദ്ധിക്കുക `%-0<' എന്നതിന് തുല്യമല്ല
`%<' എന്നാൽ പ്രോംപ്റ്റ് വലത് മാർജിനിൽ വെട്ടിച്ചുരുക്കിയതായി വ്യക്തമാക്കുന്നു.
നിർവചിച്ചിരിക്കുന്ന പ്രകാരം, പ്രോംപ്റ്റിന്റെ ഓരോ വ്യക്തിഗത വരിയിലും മാത്രമേ വെട്ടിച്ചുരുക്കൽ ബാധകമാകൂ
ഉൾച്ചേർത്ത ന്യൂലൈനുകൾ (എന്തെങ്കിലും ഉണ്ടെങ്കിൽ). പ്രോംപ്റ്റിന്റെ ഏതെങ്കിലും വരിയുടെ ആകെ ദൈർഘ്യമാണെങ്കിൽ
വെട്ടിച്ചുരുക്കൽ ടെർമിനൽ വീതിയേക്കാൾ വലുതാണ്, അല്ലെങ്കിൽ വെട്ടിച്ചുരുക്കേണ്ട ഭാഗം ആണെങ്കിൽ
ഉൾച്ചേർത്ത ന്യൂലൈനുകൾ അടങ്ങിയിരിക്കുന്നു, വെട്ടിച്ചുരുക്കൽ സ്വഭാവം നിർവചിച്ചിട്ടില്ല, കൂടാതെ a-ൽ മാറിയേക്കാം
ഷെല്ലിന്റെ ഭാവി പതിപ്പ്. ഉപയോഗിക്കുക `%-n(എൽ.യഥാർത്ഥ വാചകം.തെറ്റായ വാചകം)ഭാഗങ്ങൾ നീക്കം ചെയ്യാൻ
ലഭ്യമായ ഇടം ഇതിനേക്കാൾ കുറവായിരിക്കുമ്പോൾ പ്രോംപ്റ്റ് n.
onworks.net സേവനങ്ങൾ ഉപയോഗിച്ച് zshmisc ഓൺലൈനായി ഉപയോഗിക്കുക