Exec - Linux આદેશ - યુનિક્સ કમાન્ડ

exec - ઉપ પ્રકાશન (ઓ)

સારાંશ

exec ? સ્વીચો ? આર્ગ ? આર્ગ ... ?

વર્ણન

આ આદેશ ચલાવવા માટે એક અથવા વધુ પેટાપ્રોસેસન્સની સ્પષ્ટીકરણ તરીકે તેની દલીલોનો ઉપયોગ કરે છે. દલીલો પ્રમાણભૂત શેલ પાઇપલાઇનનું સ્વરૂપ લેતી હોય છે જ્યાં દરેક એજી આદેશના એક શબ્દ બની જાય છે, અને દરેક અલગ આદેશ એક પેટાપ્રોસેસ બની જાય છે.

જો શરૂઆતમાં પ્રારંભિક દલીલો શરૂ થાય છે - તો તે આદેશ-લાઇન સ્વીચ તરીકે ગણવામાં આવે છે અને પાઇપલાઇન સ્પષ્ટીકરણનો ભાગ નથી. નીચેના સ્વીચો હાલમાં સપોર્ટેડ છે:

-keepnewline

પાઇપલાઇનના આઉટપુટમાં પાછળની નવી લાઇન જાળવી રાખે છે. સામાન્ય રીતે પાછળની નવી લાઇન કાઢી નાખવામાં આવશે.

-

સ્વીચોના અંતને ચિહ્નિત કરે છે. આને અનુસરીને દલીલ એ પ્રથમ એગ તરીકે ગણવામાં આવશે જો તે એક સાથે પ્રારંભ થાય છે -

જો એર્ગ (અથવા એગેઝની જોડી) પાસે નીચે આપેલા સ્વરૂપોમાંના એક છે તો તેનો ઉપયોગ એપોપ્રોસેસ (ઓએસ) માં ઇનપુટ અને આઉટપુટના પ્રવાહને નિયંત્રિત કરવા માટે થાય છે. આવા દલીલો પેટાપ્રોસેસ (ઓએસ) ને પસાર કરવામાં આવશે નહીં. `` < FileName '' તરીકેના ફોર્મમાં, ક્યાં તો કોઈ 'મધ્યસ્થી જગ્યા' (એટલે ​​કે `` < ફાઇલનામ '') સાથેના સમાન દલીલમાંથી `` <> અથવા અલગ દલીલમાં હોઈ શકે છે.

|

પાઇપલાઇનમાં અલગ આદેશો અલગ કરે છે પૂર્વવર્તી કમાન્ડનું પ્રમાણભૂત આઉટપુટ આગામી આદેશના સ્ટાન્ડર્ડ ઇનપુટમાં લગાવેલું છે.

| & Gt;

પાઇપલાઇનમાં અલગ આદેશો અલગ કરે છે પૂર્વવર્તી કમાન્ડની પ્રમાણભૂત આઉટપુટ અને સ્ટાન્ડર્ડ ભૂલ બંનેને આગામી કમાન્ડનાં સ્ટાન્ડર્ડ ઇનપુટમાં પાઇપ કરવામાં આવશે. રીડાયરેક્શનના આ ફોર્મ ઓવરરાઈડ કરે છે જેમ કે 2> અને> &

< ફાઇલનામ

ફાઇલનામ દ્વારા નામવાળી ફાઇલ ખોલવામાં અને પાઇપલાઇનમાં પ્રથમ આદેશ માટે પ્રમાણભૂત ઇનપુટ તરીકે ઉપયોગમાં લેવાય છે.

<@ fileId

ફાઇલઆઇડી એક ખુલ્લી ફાઇલ માટે ઓળખકર્તા હોવા આવશ્યક છે, જેમ કે ખોલવા માટે પાછલા કૉલમાંથી રીટર્ન મૂલ્ય. તે પાઇપલાઇનમાં પ્રથમ આદેશ માટે પ્રમાણભૂત ઇનપુટ તરીકે ઉપયોગમાં લેવાય છે. ફાઇલ આઇડી વાંચવા માટે ખુલ્લી હોવા જોઈએ.

<< મૂલ્ય

મૂલ્ય પ્રથમ આદેશ તરીકે તેના પ્રમાણભૂત ઇનપુટ તરીકે પસાર થાય છે.

> ફાઇલનામ

છેલ્લા આદેશમાંથી સ્ટાન્ડર્ડ આઉટપુટ, ફાઇલનામ નામની ફાઈલમાં રીડાયરેક્ટ થાય છે, તેની પાછલી સામગ્રીને ઓવરરાઇટ કરે છે.

2> ફાઇલનામ

પાઇપલાઇનમાં તમામ આદેશોમાંથી માનક ભૂલને ફાઇલનામ નામની ફાઇલમાં રીડાયરેક્ટ કરવામાં આવે છે, તેની પાછલી સામગ્રીને ઓવરરાઇક કરે છે.

> & ફાઇલનામ

છેલ્લી આદેશમાંથી પ્રમાણભૂત આઉટપુટ અને તમામ આદેશોમાંથી પ્રમાણભૂત ભૂલને તેના અગાઉના સમાવિષ્ટો પર ફરીથી લખીને , ફાઇલ નામના ફાઇલમાં રીડાયરેક્ટ કરવામાં આવે છે.

>> ફાઇલનામ

છેલ્લા આદેશમાંથી સ્ટાન્ડર્ડ આઉટપુટ ફાઈલ નેમ નામની ફાઈલમાં રીડાયરેક્ટ કરવામાં આવે છે, તેને ઓવરરાઇટ કરવાને બદલે તેના પર ઉમેરાય છે.

2 >> ફાઇલનામ

પાઇપલાઇનમાંના તમામ આદેશોમાંથી માનક ભૂલને ફાઇલ નામના ફાઇલમાં રીડાયરેક્ટ કરવામાં આવે છે, તેને ઓવરરાઇટ કરવાને બદલે તેના પર ઉમેરવામાં આવે છે.

>> અને ફાઇલનામ

છેલ્લી આદેશમાંથી પ્રમાણભૂત આઉટપુટ અને બધા આદેશોમાંથી પ્રમાણભૂત ભૂલ બંને ફાઇલનામ નામની ફાઇલને રીડાયરેક્ટ કરવામાં આવે છે, તેને ઓવરરાઇટ કરવાને બદલે તેના પર ઉમેરવામાં આવે છે.

> @ fileId

ફાઇલઆઇડી એક ખુલ્લી ફાઇલ માટે ઓળખકર્તા હોવા આવશ્યક છે, જેમ કે ખોલવા માટે પાછલા કૉલમાંથી રીટર્ન મૂલ્ય. છેલ્લા આદેશમાંથી સ્ટાન્ડર્ડ આઉટપુટને ફાઇલઆઈડીની ફાઇલ પર રીડાયરેક્ટ કરવામાં આવે છે, જે લેખન માટે ખુલ્લી છે.

2> @ fileId

ફાઇલઆઇડી એક ખુલ્લી ફાઇલ માટે ઓળખકર્તા હોવા આવશ્યક છે, જેમ કે ખોલવા માટે પાછલા કૉલમાંથી રીટર્ન મૂલ્ય. પાઇપલાઇનમાંના તમામ આદેશોમાંથી માનક ક્ષતિને ફાઇલઆઈડીની ફાઇલ પર રીડાયરેક્ટ કરવામાં આવે છે. ફાઇલ લખવા માટે ખોલવામાં આવવી જ જોઈએ.

> & @ fileId

ફાઇલઆઇડી એક ખુલ્લી ફાઇલ માટે ઓળખકર્તા હોવા આવશ્યક છે, જેમ કે ખોલવા માટે પાછલા કૉલમાંથી રીટર્ન મૂલ્ય. છેલ્લા આદેશમાંથી પ્રમાણભૂત આઉટપુટ અને તમામ આદેશોમાંથી પ્રમાણભૂત ભૂલ બંને ફાઇલઆઈડીની ફાઇલ પર રીડાયરેક્ટ કરવામાં આવે છે. ફાઇલ લખવા માટે ખોલવામાં આવવી જ જોઈએ.

જો સ્ટાન્ડર્ડ આઉટપુટ રીડાયરેક્ટ કરવામાં આવ્યું ન હોય તો એક્ઝેક કમાન્ડ પાઇપલાઇનમાં છેલ્લી કમાન્ડમાંથી પ્રમાણભૂત આઉટપુટ આપે છે. જો પાઇપલાઇનમાંના કોઈ પણ આદેશો અસાધારણ રીતે બહાર નીકળે અથવા માર્યા ગયા હોય અથવા નિલંબિત હોય, તો પછી exec ભૂલ આપશે અને ભૂલ સંદેશો પાઇપલાઇનના આઉટપુટને અસાધારણ સમાપ્તિઓનું વર્ણન કરતા ભૂલ સંદેશાઓને અનુસરશે. ભૂલ કોડેડ વેરીએબલમાં છેલ્લા અસામાન્ય સમાપ્તિની વધારાની માહિતી હોવી જોઈએ. જો કોઈ આદેશ તેના પ્રમાણભૂત ભૂલ ફાઇલને લખે છે અને તે પ્રમાણભૂત ભૂલ રીડાયરેક્ટ નથી, તો exec એક ભૂલ આપશે; ભૂલ સંદેશમાં પાઇપલાઇનના પ્રમાણભૂત આઉટપુટનો સમાવેશ થશે, જે અસાધારણ સમાપ્તિઓ (જો કોઈ હોય તો) વિશેના સંદેશાઓને અનુસરશે, ત્યારબાદ પ્રમાણભૂત ભૂલ આઉટપુટ.

જો પરિણામ અથવા ભૂલ સંદેશાનો છેલ્લો અક્ષર નવીનતમ છે, તો તે અક્ષર સામાન્ય રીતે પરિણામ અથવા ભૂલ સંદેશામાંથી કાઢી નાખવામાં આવે છે. આ અન્ય Tcl રીટર્ન મૂલ્યો સાથે સુસંગત છે, જે સામાન્ય રીતે નવી લાઇન સાથે સમાપ્ત થતી નથી. જોકે, જો -keepnewline સ્પષ્ટ કરેલ છે તો પછીની નવી લાઇન જાળવી રાખવામાં આવે છે.

જો સ્ટાન્ડર્ડ ઇનપુટને `` <<'' અથવા `` << '' અથવા `` <@ '' સાથે રીડાયરેક્ટ કરવામાં ન આવે તો પાઇપલાઇનમાં પ્રથમ કમાન્ડ માટેનું પ્રમાણભૂત ઇનપુટ એપ્લિકેશનના વર્તમાન સ્ટાન્ડર્ડ ઇનપુટમાંથી લેવામાં આવે છે.

જો છેલ્લા આર્ગમ `` અને '' તો પછી પાઇપલાઇન પૃષ્ઠભૂમિમાં ચલાવવામાં આવશે. આ કિસ્સામાં એક્ઝેક આદેશ એક યાદી આપશે જે પાઇપલાઇનમાંની તમામ પેટાપ્રોસેસિસ માટે પ્રક્રિયા ઓળખકર્તા છે. પાઇપલાઇનમાં છેલ્લી કમાન્ડમાંથી સ્ટાન્ડર્ડ આઉટપુટ એપ્લિકેશનના પ્રમાણભૂત આઉટપુટ પર જશે જો તે રીડાયરેક્ટ ન કરવામાં આવે, અને પાઇપલાઇનમાંના તમામ આદેશોમાંથી ભૂલ આઉટપુટ એપ્લિકેશનની પ્રમાણભૂત ભૂલ ફાઇલમાં જશે જ્યાં સુધી તે રીડાયરેક્ટ નહીં થાય.

દરેક આદેશમાંનો પ્રથમ શબ્દ આદેશ નામ તરીકે લેવામાં આવે છે; ટીલ્ડ-અવેજીકરણ તેના પર કરવામાં આવે છે, અને જો પરિણામમાં કોઈ સ્લેશ ન હોય તો PATH પર્યાવરણ ચલમાંની ડિરેક્ટરીઓ આપેલ નામ દ્વારા એક્ઝેક્યુટેબલ માટે શોધાયેલ છે. જો નામમાં સ્લેશ હોય તો તે વર્તમાન ડિરેક્ટરીમાંથી એક્ઝેક્યુટેબલ સુધી પહોંચી શકાય તેવું સંદર્ભ લેશે. કોઈ `` ગ્લોબ '' વિસ્તરણ અથવા અન્ય શેલ જેવી સ્થાનાંતરણ આદેશો માટે દલીલો પર કરવામાં આવે છે.

પોર્ટેબિલીટી મુદ્દાઓ

વિન્ડોઝ (બધી આવૃત્તિઓ)

`` @ FileId '' નોટેશનનો ઉપયોગ કરીને સોકેટમાં વાંચન અથવા લખવું, કામ કરતું નથી સોકેટમાંથી વાંચતી વખતે, 16-બીટ ડોસ એપ્લિકેશન લટકાવે છે અને 32-બીટ એપ્લિકેશન તરત જ અંત-ઓફ-ફાઇલ આપશે. જ્યારે કોઈ પ્રકારની એપ્લિકેશન સૉકેટમાં લખે છે, ત્યારે માહિતી કન્સોલને મોકલવામાં આવે છે, જો કોઈ હાજર હોય અથવા કાઢી નાખવામાં આવે.

કન્સોલ ટેક્સ્ટ વિજેટ રીઅલ સ્ટાન્ડર્ડ IO ક્ષમતાઓ આપતું નથી. ટીકા હેઠળ, જ્યારે પ્રમાણભૂત ઇનપુટમાંથી પુનઃનિર્દેશિત થાય છે, ત્યારે તમામ એપ્લિકેશન્સ એક તાત્કાલિક ઓફ-ફાઇલ દેખાશે; માનક આઉટપુટ અથવા માનક ભૂલ પર રીડાયરેક્ટ કરેલી માહિતીને કાઢી નાંખવામાં આવશે.

Tcl આદેશો માટે દલીલો માટે આગળ અથવા પછાત સ્લેશને પાથ વિભાજક તરીકે સ્વીકારવામાં આવે છે. જ્યારે એપ્લિકેશન ચલાવતા હોય, ત્યારે એપ્લિકેશન માટે ઉલ્લેખિત પાથ નામ પાથ વિભાજક તરીકે આગળ અથવા પછાત સ્લેશમાં પણ હોઈ શકે છે. ધ્યાનમાં રાખો, જો કે, મોટા ભાગના વિન્ડોઝ એપ્લીકેશનો ફૉર્વર્ડ સ્લેશ સાથે દલીલોને સ્વીકારે છે માત્ર વિકલ્પ સીમાચિહ્નો અને બેકસ્લેશ્સ માત્ર પાથોમાં. કોઈ પણ દલીલો કે જે ફોરવર્ડ સ્લેશ સાથે પાથ નામ સ્પષ્ટ કરે છે તે બેકસ્લેશ અક્ષરનો ઉપયોગ કરવા માટે આપમેળે રૂપાંતરિત થશે નહીં. જો દલીલ પાથ વિભાજક તરીકે આગળ સ્લેશ ધરાવે છે, તો તે પ્રોગ્રામના આધારે પાથ નામ તરીકે ઓળખાય છે અથવા માન્ય નથી.

વધુમાં, જ્યારે 16-બીટ ડોસ અથવા વિન્ડોઝ 3.x એપ્લિકેશનને બોલાવવામાં આવે ત્યારે, બધા પાથ નામોએ ટૂંકા, રહસ્યમય, પાથ ફોર્મેટનો ઉપયોગ કરવો જોઈએ (દા.ત. `` applbakery.default '' ને બદલે `` applba ~ 1.def '' નો ઉપયોગ કરવો). ).

પાથમાં પંક્તિમાં બે અથવા વધુ આગળ અથવા પછાત સ્લેશ નેટવર્ક પાથનો સંદર્ભ લો. ઉદાહરણ તરીકે, મૂળ ડાયરેક્ટરી c: / સબ ડાયરેક્ટરી / વિન્ડોઝ / સિસ્ટમ સાથે c: // windows / સિસ્ટમ (બે સ્લેશ સાથે મળીને) ઉપજાવે છે, જે વિન્ડો (અને c: / અવગણવામાં આવે છે), અને તે c: / windows / system ની સમકક્ષ નથી, જે વર્તમાન કમ્પ્યુટર પરની ડિરેક્ટરીને વર્ણવે છે. ફાઈલ જોડાવા આદેશનો ઉપયોગ પાથ ઘટકોને એકસાથે કરવા માટે કરવો જોઈએ.

વિન્ડોઝ એનટી

જ્યારે એપ્લિકેશન ચલાવવાનો પ્રયાસ કરી રહ્યા હોય, ત્યારે પ્રથમ નામ તરીકે નામની શોધ કરે છે કારણ કે તે સ્પષ્ટ થયેલ હતું. તે પછી, ક્રમમાં ,. કોમ ,. Exe , અને .bat એ સ્પષ્ટ થયેલ નામના અંતમાં ઉમેરાય છે અને તે લાંબા સમય સુધી નામની શોધ કરે છે. જો કોઈ ડિરેક્ટરી નામ એપ્લિકેશન નામના ભાગ રૂપે નિર્દિષ્ટ ન હતું, તો નીચેની સ્થિતિઓ આપમેળે શોધવામાં આવે છે જ્યારે એપ્લિકેશનને શોધવાનો પ્રયાસ કરવામાં આવે છે:

ડિરેક્ટરી કે જેમાંથી Tcl એક્ઝેક્યુટેબલ લોડ થયેલ છે.
વર્તમાન ડિરેક્ટરી.
વિન્ડોઝ એનટી 32-બીટ સિસ્ટમ ડાયરેક્ટરી.
વિન્ડોઝ એનટી 16 બીટ સિસ્ટમ ડિરેક્ટરી.
વિન્ડોઝ એનટી હોમ ડિરેક્ટરી.
પાથમાં સૂચિબદ્ધ ડિરેક્ટરીઓ.

ડાયર અને કૉપિ જેવા શેલ બિલ્ટિન આદેશો ચલાવવા માટે, કૉલરને જરૂરી આદેશમાં `` cmd.exe / c '' ભરવું આવશ્યક છે.

વિન્ડોઝ 95

જ્યારે એપ્લિકેશન ચલાવવાનો પ્રયાસ કરી રહ્યા હોય, ત્યારે પ્રથમ નામ તરીકે નામની શોધ કરે છે કારણ કે તે સ્પષ્ટ થયેલ હતું. તે પછી, ક્રમમાં ,. કોમ ,. Exe , અને .bat એ સ્પષ્ટ થયેલ નામના અંતમાં ઉમેરાય છે અને તે લાંબા સમય સુધી નામની શોધ કરે છે. જો કોઈ ડિરેક્ટરી નામ એપ્લિકેશન નામના ભાગ રૂપે નિર્દિષ્ટ ન હતું, તો નીચેની સ્થિતિઓ આપમેળે શોધવામાં આવે છે જ્યારે એપ્લિકેશનને શોધવાનો પ્રયાસ કરવામાં આવે છે:

ડિરેક્ટરી કે જેમાંથી Tcl એક્ઝેક્યુટેબલ લોડ થયેલ છે.
વર્તમાન ડિરેક્ટરી.
વિન્ડોઝ 95 સિસ્ટમની ડિરેક્ટરી.
વિન્ડોઝ 95 હોમ ડિરેક્ટરી.
પાથમાં સૂચિબદ્ધ ડિરેક્ટરીઓ.

ડાયર અને કૉપિ જેવા શેલ બિલ્ટિન આદેશો ચલાવવા માટે, કૉલરને જરૂરી આદેશમાં `` command.com / c '' ભરવો આવશ્યક છે.

એકવાર 16-બીટ ડોસ એપ્લિકેશનએ કન્સોલમાંથી સ્ટાન્ડર્ડ ઇનપુટ વાંચ્યું છે અને તે પછી બહાર નીકળે છે, ત્યારબાદ 16-બીટ ડોસ એપ્લિકેશન્સ ચલાવવામાં આવે છે તે પહેલાથી બંધ થતાં સ્ટાન્ડર્ડ ઇનપુટને જોશે. 32 બીટ એપ્લિકેશન્સમાં આ સમસ્યા નથી અને 16-બીટ ડોસ એપ્લિકેશન વિચારે છે કે પ્રમાણભૂત ઇનપુટ બંધ છે તે પછી પણ, યોગ્ય રીતે ચાલશે. આ સમયે આ ભૂલ માટે કોઈ જાણીતું ઉકેલ નથી.

NUL વચ્ચે પુનઃનિર્માણ: ઉપકરણ અને 16-બીટ એપ્લિકેશન હંમેશા કામ કરતું નથી. NUL માંથી પુનઃદિશામાન કરતી વખતે, કેટલીક એપ્લિકેશન્સ અટકી શકે છે, અન્યને `` 0x01 '' બાઇટ્સની અનંત સ્ટ્રીમ મળશે, અને કેટલાકને વાસ્તવમાં તાત્કાલિક ઓફ-ફાઇલ મળશે; વર્તન એ પોતે જ એપ્લિકેશનમાં સંકલિત કંઈક પર આધાર રાખે છે તેમ લાગે છે. જ્યારે 4K અથવા NUL કરતાં વધુ પુનઃદિશામાન થાય ત્યારે : કેટલાક કાર્યક્રમો અટકી જશે. ઉપરોક્ત સમસ્યાઓ 32-બીટ એપ્લિકેશન્સ સાથે થતી નથી

બધા ડોસ 16-બીટ એપ્લિકેશન્સ સુમેળ ચાલે છે. પાઇપથી તમામ પ્રમાણભૂત ઇનપુટને 16-બીટ ડોસ એપ્લિકેશનમાં અસ્થાયી ફાઇલમાં એકત્રિત કરવામાં આવે છે; 16-બીટ ડોસ એપ્લિકેશન શરૂ થતાં પહેલાં પાઇપનો બીજો અંત બંધ થવો જોઈએ. 16-બીટ ડોસ એપ્લિકેશનથી પાઇપમાં તમામ પ્રમાણભૂત આઉટપુટ અથવા ભૂલ કામચલાઉ ફાઇલોમાં એકત્રિત કરવામાં આવે છે; કામચલાઉ ફાઈલો પાઇપલાઇન આગળના તબક્કામાં રીડાયરેક્ટ કરવામાં આવે તે પહેલાં અરજી સમાપ્ત થવી જ જોઈએ. આ પાઈપના અમલીકરણમાં વિન્ડોઝ 95 બગના ઉકેલ માટેનું કારણ છે, અને તે પણ છે કે કેવી રીતે સ્ટાન્ડર્ડ વિન્ડોઝ 95 ડોસ શેલ પાઇપ્સ પોતે સંભાળે છે.

અમુક કાર્યક્રમો, જેમ કે કમાન્ડકોમ , ક્રિયાપ્રતિક્રિયાત્મક રીતે ચલાવવામાં ન આવવી જોઈએ. એપ્લિકેશન્સ જે સીધો જ કન્સોલ વિન્ડોને ઍક્સેસ કરે છે, તેના સ્ટાન્ડર્ડ ઇનપુટમાંથી વાંચવા અને તેમના પ્રમાણભૂત આઉટપુટમાં લખવાને બદલે નિષ્ફળ થઈ શકે છે, Tcl ને અટકી શકે છે, અથવા તો સિસ્ટમ અટકી શકે છે જો તેમની પોતાની ખાનગી કન્સોલ વિન્ડો તેમને ઉપલબ્ધ ન હોય

મેકિન્ટોશ

Exec આદેશ અમલ નથી અને તે મેકિન્ટોશ હેઠળ અસ્તિત્વમાં નથી.

યુનિક્સ

Exec આદેશ સંપૂર્ણપણે વિધેયાત્મક છે અને વર્ણવ્યા પ્રમાણે કાર્ય કરે છે.

આ પણ જુઓ

ભૂલ (એન), ખોલો (એન)

કીવર્ડ્સ

અમલ, પાઇપલાઇન, પુનર્નિર્દેશન, પેટાપ્રોસેસ

મહત્વનું: તમારા ચોક્કસ કમ્પ્યૂટર પર આદેશ કેવી રીતે વાપરવામાં આવે છે તે જોવા માટે man આદેશ ( % man ) નો ઉપયોગ કરો.