Exec - Linux Command - Unix Command

exec - Subprocess'i çağırın (es)

Sinopsis

exec ? açarlar ? arg ? arg ... ?

Təsvir

Bu əmr öz arqumentlərini icra etmək üçün bir və ya bir neçə subprocessesin spesifikasiyası kimi qəbul edir. Arqumentlər, hər arg bir komandanın bir sözü olur və hər bir fərqli əmr bir subprocess olur standart bir kabuk boru xətti forması alır.

Exec üçün başlanğıc dəlilləri ilə başlasanız - onda komanda kəmərləri kimi qəbul edilir və boru kəmərinin dəqiqləşdirilməsinin bir hissəsi deyildir. Aşağıdakı keçidlər hazırda dəstəklənir:

-təmir xətti

Boru kəmərinin çıxışında arxasındakı yeni xəttini saxlayır. Normalda bir sonrakı satır silinəcəkdir.

-

Anahtarların sonunu qeyd edir. Bundan sonra arqument, bir - ilə başlayır olsa da, ilk arg kimi qəbul ediləcək.

Bir arg (və ya cüt cüt) aşağıda təsvir olunan formalardan birinə malikdirsə, subprocess (s) arasında giriş və çıxış axını nəzarət etmək üçün exec tərəfindən istifadə olunur. Belə arqumentlər subprocessə (es) keçməyəcək. '' Fayl adı '' filename kimi formalarda ya '`<' 'dən ayrı bir arqument və ya eyni arqumentdə heç bir müdaxilə məkanı ola bilməz ( yəni` `< fileName ' ').

|

Boru kəmərində fərqli əmrləri ayırır. Əvvəlki komandanın standart çıxışı növbəti komandanın standart girişinə keçiriləcəkdir.

| |

Boru kəmərində fərqli əmrləri ayırır. Əvvəlki komandanın standart çıxışı və standart səhvləri növbəti komandanın standart girişinə keçiriləcəkdir. Bu redirection forması 2> və> &.

< fileName

Fayl adıyla adlandırılan fayl açılır və boru kəmərində ilk komanda üçün standart giriş kimi istifadə olunur.

<@ fileId

FileId , açıq bir fayl üçün identifikator olmalıdır, məsələn, bir əvvəlki çağırışdan gələn dəyərdən açıqdır . Boru kəmərində ilk komanda üçün standart giriş kimi istifadə olunur. FileId oxumaq üçün açılmış olmalıdır.

<< dəyər

Qiymət , standart girişi olaraq ilk əmrə keçilir.

> fileName

Son əmrdən standart çıxış fileName adlı faylya köçürülür , əvvəlki məzmunun üzərində yazılır.

2> fileName

Boru kəmərindəki bütün əmrlərdən standart səhv fileName adlı faylya köçürülür , əvvəlki məzmunu əvəzləyir.

> & fileName

Bütün əmrlərdən gələn son əmr və standart səhvdən standart çıxış həm də əvvəlki məzmunu əvəz edən fileName adlı faylya yönəldilir.

>> fileName

Sonuncu əmrdən standart çıxış filename adlı faylya yönəldilir, onu əlavə etmək əvəzinə əlavə olunur.

2 >> fileName

Boru kəmərindəki bütün əmrlərdən standart səhv filename adlı faylya köçürülür , onu əlavə yazmaq əvəzinə əlavə edir.

>> & fileName

Bütün əmrlərdən gələn son əmr və standart səhvdən standart çıxış hər iki faylın üzərində yazılmaq əvəzinə əlavə olunur, fileName adlı faylya yönəldilir.

> @ fileId

FileId , açıq bir fayl üçün identifikator olmalıdır, məsələn, bir əvvəlki çağırışdan gələn dəyərdən açıqdır . Son əmrdən standart çıxış yazı üçün açılmış olması lazım olan fileId faylına yönəldilir.

2> @ fileId

FileId , açıq bir fayl üçün identifikator olmalıdır, məsələn, bir əvvəlki çağırışdan gələn dəyərdən açıqdır . Boru kəmərindəki bütün əmrlərdən standart səhv fileId faylına yönlendirilir. Fayl yazı üçün açılmış olmalıdır.

> & @ fileId

FileId , açıq bir fayl üçün identifikator olmalıdır, məsələn, bir əvvəlki çağırışdan gələn dəyərdən açıqdır . Bütün əmrlərdən son əmr və standart səhvdən standart çıxış həm fileId faylına yönəldilir. Fayl yazı üçün açılmış olmalıdır.

Standart çıxış çıxışa yönəldilmədikdə, exec əmri boru kəmərindəki son əmrdən standart çıxışı qaytarır. Boru kəmərindəki əmrlər anormal şəkildə çıxarsa və ya öldürüldükdə və ya dayandırıldıqda, exec bir səhv qaytaracaq və səhv mesajı boru kəmərinin çıxışını, ardından anormal sonlandırmaları təsvir edən səhv mesajlar içərisindədir; errorCode dəyişənində qarşılaşdığımız son anormal sonlandırma haqqında əlavə məlumat olacaq. Komutlardan hər hansı biri standart səhv faylına yazır və standart səhv yönlendirilmezse exec bir səhv qaytarır; səhv mesajı boru kəmərinin standart çıxışını, sonra isə normal xəta çıxdıqdan sonra anormal sonlandırma (varsa) barədə mesajlar daxildir.

Nəticənin və ya səhv mesajın son xarakteri yeni bir xəttdirsə, bu xarakter adətən nəticə və ya səhv mesajından silinir. Bu, normal olaraq yeni xətlərlə bitməyən digər Tcl qaytarma dəyərlərinə uyğun gəlir. Buna baxmayaraq, əgər -widewewline müəyyən edilirsə , onda yeni satır saxlanılır.

Standart giriş'` <'' və ya `` << '' və ya`` <@ '' ilə yönlendirilsə, boru kəmərində ilk komanda üçün standart giriş tətbiqin mövcud standart girişindən alınır.

Əgər son arg'` & '', boru kəməri fonda icra ediləcək. Bu halda exec əmri boru kəmərindəki bütün subprocesses üçün element identifikatorları olan elementləri qaytaracaq. Boru kəmərindəki son əmrdən çıxan standart çıxış, yönlendirilməmişsə tətbiqin standart çıxışına keçəcək və boru kəmərindəki bütün əmrlərdən səhv çıxma tətbiqin standart səhv faylına yönəldilməyincə gedəcəkdir.

Hər komanda ilk söz komanda adı olaraq alınır; tilde-əvəz edilməsi yerinə yetirilir və nəticədə heç bir çubuq yoxdursa, PATH ətraf mühit dəyişkənliyindəki qovluqlar adın verilməsi üçün axtarış aparılır. Adı bir çırpma içərsə, o, mövcud kataloqdan əldə edilə bilən bir proqrama istinad etməlidir. Komanda üçün dəlilləri heç bir 'glob' genişləndirilməsi və ya digər kabuk kimi dəyişikliklər edilir.

Taşınabilirlik məsələləri

Windows (bütün versiyalar)

'' @ FileId '' qeydindən istifadə edərək oxumaq və ya bir yuvaya yazmaq işləmir. Bir yuvadan oxuduğunuzda, 16 bit DOS proqramı asılacaq və 32 bitlik proqram dərhal sonuncu fayl ilə qaytarılacaq. Tətbiqi növü bir yuvaya yazdıqda, məlumatlar bir konsolda göndərilir, əgər varsa və ya atılırsa.

Tk konsolu mətn widgetı real standart IO imkanlarını təmin etmir. Tk altında, standart girişi yeniden yönlendirirken, bütün uygulamalar hemen bir faylın sonunu görür; standart çıxışa və ya standart səhvəyə yönəldilən məlumat atılacaqdır.

Tcl əmrlərinə arqumentlər üçün irəli və ya geriyə doğru kəsiklər yol ayırıcıları kimi qəbul edilir. Ərizə icra edərkən tətbiq üçün göstərilən yol adı da yol ayırıcıları kimi irəli və ya geriyə bükülmüş ola bilər. Bununla yanaşı, Windows proqramlarının əksəriyyətini argümanları yalnız seçim yolları və yolları yalnız yollarda irəliləyir. İrəli çatlarla bir yol adı göstərən bir tətbiqə dair hər hansı arqumentlər avtomatik olaraq backslash xarakterindən istifadə edilməyəcəkdir. Bir arqument yol ayırıcısı kimi irəliləyirsə, bu, proqrama bağlı olaraq yol adı kimi qəbul edilə bilər və ya ola bilməz.

Bundan əlavə, 16 bit DOS və ya Windows 3.X proqramı çağırarkən, bütün yol adları qısa, şifrəli, yol formatından istifadə etməlidir (məsələn `` applbakery.default 'yerine' applba ~ 1.def ' ).

Bir yolda bir sıra iki və ya daha çox irəli və ya geriyə kəsilmiş bantlar şəbəkə yoluna aiddir. Məsələn, c: / alt / windows / sistem ilə kök dizinin sadə birləşməsi c: // windows / system (iki slashes birlikdə) verəcəkdir. c: / gözardı olunur) və c: / windows / sisteminə bərabər deyil, bu cari kompüterdə bir qovluğu təsvir edir. Fayl birləşməsi əmrini yol komponentlərini birləşdirmək üçün istifadə etmək lazımdır.

Windows NT

Bir tətbiqi icra etməyə çalışarkən ilk olaraq adı göstərildiyi kimi, adı exec edin . Ardından, .com , .exe.bat üçün, müəyyən adın sonuna əlavə olunur və daha uzun adını axtarır. Bir qovluğun adı ərizə adının bir hissəsi kimi göstərilmədikdə, proqramı tapmaq üçün cəhd edərkən aşağıdakı dizinler avtomatik olaraq aranır:

Tcl çalıştırılabilirinin yükləndiyi qovluq.
Mövcud kataloq.
Windows NT 32-bit sistem qovluğu.
Windows NT 16-bit sistem qovluğu.
Windows NT ev dizini.
Yolda göstərilən kataloqlar.

Dirisurəti kimi qeydə alınmış əmrləri yerinə yetirmək üçün, zəng etmək istəyən komandaya ` cmd.exe / c '' əvəz etməlidir.

Windows 95

Bir tətbiqi icra etməyə çalışarkən ilk olaraq adı göstərildiyi kimi, adı exec edin . Ardından, .com , .exe.bat üçün, müəyyən adın sonuna əlavə olunur və daha uzun adını axtarır. Bir qovluğun adı ərizə adının bir hissəsi kimi göstərilmədikdə, proqramı tapmaq üçün cəhd edərkən aşağıdakı dizinler avtomatik olaraq aranır:

Tcl çalıştırılabilirinin yükləndiyi qovluq.
Mövcud kataloq.
Windows 95 sistem qovluğu.
Windows 95 home directory.
Yolda göstərilən kataloqlar.

Dirisurəti kimi hazırlanmış əmrləri yerinə yetirmək üçün, zəng etmək istədiyiniz komandaya ' command.com / c ' ' əvəz etməlidir.

Bir 16 bit DOS proqramı bir konsoldan standart girişi oxudu və sonra çıxdıqdan sonra bütün 16 bit DOS tətbiqləri standart girişləri artıq bağlanıb kimi görür. 32 bitlik tətbiqlərin bu problemi yoxdur və 16 bit DOS tətbiqinin standart girişin bağlanıldığını düşündükdən sonra da düzgün işlədilir. Hazırda bu səhv üçün heç bir tanınma yolu yoxdur.

NUL: cihaz və 16 bit tətbiq arasında dəyişiklik həmişə işləmir. NUL- dən yönləndirərkən : bəzi tətbiqlər asmaq olar, digərləri '0x01' 'baytın sonsuz bir axını alacaq və bəziləri həqiqətən dərhal bir faylın sonunu alır; davranış tətbiqin özündə tərtib edilən bir şeyə bağlıdır. 4K-dən çox və ya daha çox NUL- ə yönləndirərkən : bəzi tətbiqlər asmaqdadır. Yuxarıda göstərilən problemlər 32 bitlik tətbiqlərlə baş vermir.

Bütün DOS 16-bit proqramları sinxron şəkildə işləyir. Bir borudan 16 bit DOS tətbiqinə qədər bütün standart giriş müvəqqəti bir faylda toplanır; 16 bit DOS tətbiqinin icrasına başlamadan boruun digər ucu bağlanmalıdır. 16 bitlik DOS tətbiqindən bir boruya bütün standart çıxış və ya səhv müvəqqəti fayllara yığılır; müvəqqəti fayllar boru kəmərinin növbəti mərhələsinə yönəldilməzdən əvvəl ərizə ləğv edilməlidir. Bu, boruların tətbiqində Windows 95 səhvinin həlli üçün yaradılan şəraitdir və standart Windows 95 DOS qabığının boruların özünü necə idarə etdiyidir.

Command.com kimi müəyyən tətbiqlər interaktiv şəkildə icra edilməməlidir. Konsol pəncərəsinə birbaşa daxil olan tətbiqlər, onların standart girişindən və standart çıxışından yazma əvəzinə müvəqqəti ola bilər, Tcl-i asır və ya öz xüsusi konsol pəncərəsi onlara aid olmadıqda sistemi asmaqla bilər.

Macintosh

Exec əmri tətbiq edilmir və Macintosh altında mövcud deyil.

Unix

Exec əmri tam funksionaldır və təsvir olunduğu kimi işləyir.

Həmçinin bax

səhv (n), açıq (n)

Açar sözlər

icra, boru kəməri, yenidən yönlendirme, subprocess

Mühüm: Şəxsi kompüterinizdə bir komanda necə istifadə edildiyini görmək üçün man komutunu ( % man ) istifadə edin.