Exec - Linux Command - Unix komandu

exec - Atsaukt apakšprocesu (s)

Kopsavilkums

exec ? slēdži arg ? arg ... ?

Apraksts

Šī komanda uzskata savus argumentus par vienas vai vairāku apakšprocesu izpildi. Argumenti ir standarta apvalka cauruļvada veidā, kur katrs arg kļūst par vienu komandas vārdu, un katra atšķirīgā komanda kļūst par apakšprocesu.

Ja sākotnējie argumenti, lai exec sāktu ar - tad tie tiek uzskatīti par komandrindas slēdžiem, un tie nav daļa no cauruļvada specifikāciju. Pašlaik tiek atbalstīti šādi slēdži:

-keepnewline

Cauruļvada izvadā tiek saglabāta noturīga jauna līnija. Parasti pēdējā jaunā līnija tiek dzēsta.

-

Atzīmē slēdžu beigas. Arguments pēc šī ir uzskatāms par pirmo arg, pat ja tas sākas ar - .

Ja argumentam (vai argu pāri) ir kāda no tālāk aprakstītajām formām, to izmanto exec, lai kontrolētu ieejas un izejas plūsmu starp apakšprocesu (s). Šādi argumenti netiks nodoti apakšprocesam (-iem). Veidlapās, piemēram, `` fileName '' fileName var būt vai nu atsevišķā argumentā no `` <'', vai arī tajā pašā argumentā bez interferences (ti, `` < fileName '').

|

Atdala atsevišķas komandas cauruļvadā. Iepriekšējās komandas standarta izvadi ievadīs nākamās komandas standarta ievadījumā.

| &

Atdala atsevišķas komandas cauruļvadā. Gan iepriekšējās komandas standarta izvadi un standarta kļūdas tiks ievadītas nākamās komandas standarta ievadījumā. Šī novirzīšanas forma ignorē tādas veidlapas kā 2> un> &.

< faila nosaukums

Failu, kas nosaukts ar faila nosaukumu, tiek atvērts un tiek izmantots kā standarta ievade pirmajai komandai cauruļvadā.

<@ fileId

FileId jābūt atvērtā faila identifikatoram, piemēram, atgriezeniskā vērtība no iepriekšējā atvērtā zvana. To izmanto kā standarta ievadi pirmajai cauruļvada komandai. FileId jābūt atvērtam lasīšanai.

<< vērtība

Vērtība tiek nodota pirmajai komandai kā standarta ievade.

> faila nosaukums

Standarta izvade no pēdējās komandas tiek novirzīta uz failu ar nosaukumu fileName , pārrakstot tā iepriekšējo saturu.

2> fileName

Standarta kļūda no visām cauruļvada komandām tiek novirzīta uz failu ar nosaukumu fileName , pārrakstot tā iepriekšējo saturu.

> & faila nosaukums

Abi standarta izvadi no pēdējās komandas un standarta kļūdas no visām komandām tiek novirzīti uz failu ar nosaukumu fileName , pārrakstot tā iepriekšējo saturu.

>> file name

Standarta izvade no pēdējās komandas tiek novirzīta uz failu ar nosaukumu fileName , pievienojot to, nevis pārrakstot to.

2 >> faila nosaukums

Standarta kļūda no visām cauruļvada komandām tiek novirzīta uz failu ar nosaukumu fileName , pievienojot to, nevis pārrakstot to.

>> & faila nosaukums

Gan standarta izvadi no pēdējās komandas un standarta kļūdas no visām komandām tiek novirzīti uz failu ar nosaukumu fileName , pievienojot to, nevis pārrakstot to.

> @ fileId

FileId jābūt atvērtā faila identifikatoram, piemēram, atgriezeniskā vērtība no iepriekšējā atvērtā zvana. Standarta izeja no pēdējās komandas tiek novirzīta uz fileId failu, kas ir bijis atvērts rakstīšanai.

2> @ fileId

FileId jābūt atvērtā faila identifikatoram, piemēram, atgriezeniskā vērtība no iepriekšējā atvērtā zvana. Standarta kļūda no visām cauruļvada komandām tiek novirzīta uz fileId failu. Fails ir bijis atvērts rakstīšanai.

> & @ failaattēls

FileId jābūt atvērtā faila identifikatoram, piemēram, atgriezeniskā vērtība no iepriekšējā atvērtā zvana. Abi standarta izvadi no pēdējās komandas un standarta kļūdas no visām komandām tiek novirzīti uz fileId failu. Fails ir bijis atvērts rakstīšanai.

Ja standarta produkcija nav novirzīta, tad izpildes komanda atdod standarta izvadi no pēdējās komandas cauruļvadā. Ja kāda no cauruļvada komandām iziet ārkārtīgi vai tiek nogalināta vai apturēta, exec izpildīs kļūdu un kļūdas ziņojums ietver cauruļvada izvadi, kam seko kļūdas ziņojumi, kas apraksta neparastu izbeigšanu; mainīgais errorCode satur papildu informāciju par pēdējo neparasto izbeigšanos. Ja kāda no komandām raksta uz savu standarta kļūdas failu un šī standarta kļūda netiek novirzīta, tad exec izpildīs kļūdu; kļūdas ziņojumā būs cauruļvada standarta izlaide, kam seko ziņojumi par neparastajām izbeigšanām (ja tādas ir), kam seko standarta kļūdu izlaide.

Ja rezultāta vai kļūdas ziņojuma pēdējais raksturs ir jauna līnija, parasti šis rakstzīme tiek izdzēsta no rezultāta vai kļūdas ziņojuma. Tas atbilst citām Tcl atgriešanās vērtībām, kuras parasti nebeidzas ar jaunajām līnijām. Tomēr, ja ir norādīts -keepnewline, tiek saglabāta aizmugurējā jaunā līnija .

Ja standarta ievade netiek novirzīta ar `` <'' vai `` << '' vai `` <@ '', tad standarta ievade pirmajai komandai cauruļvadā tiek ņemta no pašreizējās standarta ieejas.

Ja pēdējais arg ir `` & '', tad cauruļvads tiks izpildīts fona režīmā. Šajā gadījumā exec komanda atgriež sarakstu, kura elementi ir procesu identifikatori visiem apakšprocesiem cauruļvadā. Standarta izvade no pēdējās komandas cauruļvadā iet uz lietojumprogrammas standarta izvadi, ja tā nav novirzīta, un kļūdu izvade no visām komandām cauruļvada iet uz lietojumprogrammas standarta kļūdas failu, ja vien nav novirzīts.

Pirmais vārds katrā komandā tiek ņemts par komandas nosaukumu; uz tā tiek veikta tildes aizstāšana, un, ja rezultāts nesatur slīpsvītras, tad direktorijā PATH vides mainīgā tiek meklēta izpildāmā ar vārdu. Ja nosaukumā ir slīpsvītra, tad tam jāattiecas uz izpildāmo failu, kas ir pieejams no pašreizējā direktorija. Komandu argumentiem netiek veikta `` glob '' paplašināšana vai citi apvalka formas aizvietojumi.

Pārnēsājamības problēmas

Windows (visas versijas)

Lasīšana no vai rakstīšana uz ligzdu, izmantojot `` @ fileId '' nozīmi, nedarbojas. Lasot no kontaktligzdas, tiks aizvērta 16 bitu DOS lietojumprogramma, un 32 bitu lietojumprogramma nekavējoties atgriezīsies ar faila beigu datumu. Ja kāda veida lietojumprogramma raksta uz kontaktligzdas, tā vietā tiek nosūtīta informācija konsolei, ja tā ir klāt vai tiek izmesta.

Tk konsoles teksta logrīks nenodrošina reālas standarta IO iespējas. Zem Tk, novirzot no standarta ievades, visām lietojumprogrammām tiks parādīts tūlītējs faila beigas; informācija, kas tiek novirzīta uz standarta izvadi vai standarta kļūdu, tiek noraidīta.

Tika uz priekšu vai atpakaļ vērstas slīpsvītras tiek pieņemtas kā ceļa atdalītāji argumentiem, lai Tcl komandas. Veicot lietojumprogrammu, ceļa nosaukums, kas norādīts lietojumprogrammai, var ietvert arī ceļa atdalītājus uz priekšu vai atpakaļ. Tomēr jāpatur prātā, ka lielākā daļa Windows lietojumprogrammu pieņem argumentus ar uz priekšu paredzētām sliedēm tikai kā opciju atdalītājus un aizmugures joslas tikai ceļiem. Jebkuri argumenti lietojumprogrammai, kurā norādīts ceļa nosaukums ar priekšējām kvadrātveida daļām, automātiski netiek konvertētas, lai izmantotu atpakaļkritušo rakstzīmi. Ja arguments ir ceļa atdalītājs, tā var būt vai neatzīst par ceļa nosaukumu, atkarībā no programmas.

Bez tam, zvanot uz 16 bitu DOS vai Windows 3.X lietojumprogrammu, visiem ceļu nosaukumiem jāizmanto īsais, noslēpumaina ceļa formāts (piemēram, izmantojot `` applba ~ 1.def '', nevis `` applbakery.default '' )

Divas vai vairākas uz priekšu vai atpakaļ vērstas slīpsvītras pēc kārtas ceļā norāda uz tīkla ceļu. Piemēram, vienkārša saknes direktorija c: / ar apakšdirektoriju / windows / system rezultātā būs c: // windows / system (divas slashes kopā), kas attiecas uz piestiprināšanas punktu, ko sauc par sistēmas sistēmu , ko sauc par windows (un c: / ignorē), un tas nav līdzvērtīgs c: / windows / sistēmai , kas apraksta pašreizējā datora direktoriju. Faila pievienošanas komanda jāizmanto, lai sapludinātu ceļa komponentus.

Windows NT

Mēģinot izpildīt lietojumprogrammu, exec pirmkārt meklē vārdu, kā tas bija norādīts. Pēc tam, lai, .com , .exe un .bat tiktu pievienoti norādītā vārda beigām, un tas meklē ilgāku nosaukumu. Ja kataloga nosaukums nav norādīts kā daļa no programmas nosaukuma, mēģinot atrast lietojumprogrammu, automātiski tiek meklēti šādi direktoriji:

Katalogs, no kura tika ielādēts Tcl izpildāmā faila.
Pašreizējais katalogs.
Windows NT 32 bitu sistēmas direktorijs.
Windows NT 16 bitu sistēmas direktorijs.
Windows NT mājas direktorija.
Trasē uzskaitītie katalogi.

Lai izpildītu čaulas builtinas komandas, piemēram, dir un kopiju , zvanītājam jāpievieno vajadzīgā komanda `` cmd.exe / c ''.

Windows 95

Mēģinot izpildīt lietojumprogrammu, exec pirmkārt meklē vārdu, kā tas bija norādīts. Pēc tam, lai, .com , .exe un .bat tiktu pievienoti norādītā vārda beigām, un tas meklē ilgāku nosaukumu. Ja kataloga nosaukums nav norādīts kā daļa no programmas nosaukuma, mēģinot atrast lietojumprogrammu, automātiski tiek meklēti šādi direktoriji:

Katalogs, no kura tika ielādēts Tcl izpildāmā faila.
Pašreizējais katalogs.
Windows 95 sistēmas direktorija.
Windows 95 mājas direktorija.
Trasē uzskaitītie katalogi.

Lai izpildītu čaulas iebūvēto komandu, piemēram, dir un kopiju , zvanītājam jāpievieno vajadzīgā komanda "` command.com / c ''.

Kad 16 bitu DOS lietojumprogramma ir izlasījusi standarta ievadi no konsoles un pēc tam atmest, visas vēlāk palaistās 16 bitu DOS lietojumprogrammas redzēs standarta ievadi, kas jau ir slēgta. 32 bitu lietojumprogrammām šī problēma nav un darbojas pareizi pat tad, ja 16 bitu DOS lietojumprogramma domā, ka standarta ievade ir slēgta. Šajā brīdī nav zināms risinājums šīs kļūdas dēļ.

Pārsūtīšana starp NUL: ierīci un 16 bitu lietojumprogrammu ne vienmēr darbojas. Pārvirzot no NUL: dažas programmas var pakārt, citi saņems bezgalīgu plūsmu ar `` 0x01 '' baitiem, un daži faktiski pareizi saņem tūlītēju faila beigas; šķiet, ka uzvedība ir atkarīga no paša pieteikumā apkopotā. Pārvirzot vairāk nekā 4K līdz NUL: dažas programmas tiks pakārtotas. Iepriekš minētās problēmas nenotiek ar 32 bitu lietojumprogrammām.

Visas DOS 16 bitu lietojumprogrammas tiek palaistas sinhroni. Visa standarta ievade no caurules uz 16 bitu DOS lietojumprogrammu tiek savākta pagaidu failā; pirms 16 bitu DOS lietojumprogrammas sākuma izpildīt, otra caurules gala daļa ir jāslēdz. Visu standarta izvadi vai 16 bitu DOS lietojumprogrammas kļūdu caurulei tiek savākti pagaidu faili; pieteikumam ir jābeidzas, pirms pagaidu faili tiek novirzīti uz nākamo cauruļvada posmu. Tas ir saistīts ar risinājumu, kas saistīts ar Windows 95 kļūdu ieviešanu cauruļvados, un to, kā standarta Windows 95 DOS apvalks apstrādā pašas caurules.

Noteiktas programmas, piemēram, command.com , nedrīkst tikt izpildītas interaktīvi. Lietojumprogrammas, kuras tieši piekļūst konsoles logam, nevis nolasa no standarta ieejas un raksta uz to standarta izvadi, var neizdoties, pakārt Tcl vai pat pakārt sistēmu, ja tām nav pieejams viņu privāts konsole.

Macintosh

Komanda izpilde nav ieviesta, un tā nepastāv Macintosh.

Unix

Izpildes komanda ir pilnībā funkcionāla un darbojas kā aprakstīts.

Skatīt arī

kļūda (n), atvērta (n)

Atslēgvārdi

izpildīt, cauruļvadu, novirzīšanu, apakšprocesu

Svarīgi: izmantojiet vīriešu komandu ( % man ), lai redzētu, kā komanda tiek izmantota jūsu konkrētajā datorā.