Exec - Linux Buyruq - Unix Buyruq

exec - subprocessni chaqirish (es)

Sinopsis

exec ? kalitlari bormi? arg ? arg ... ?

Ta'rif

Ushbu buyruq o'z argumentlarini bajarish uchun bir yoki bir nechta subprosesslarning spetsifikatsiyasi sifatida ko'rib chiqiladi. Argumentlar har bir arg argumentning bitta so'ziga aylanadigan va har bir alohida buyruqlar subprocessga aylanadigan standart qobiqli quvur shaklini oladi.

Agar exec uchun boshlang'ich argumentlar bilan boshlanadigan bo'lsa, u holda ular buyruq qatorlari kalitlari sifatida qaraladi va quvur liniyasi spetsifikatsiyasining bir qismi emas. Quyidagi kalitlar hozirda qo'llab-quvvatlanadi:

-to'lovni davom ettirish

Quvur liniyasining chiqishi chog'ida keyingi qatorni saqlab qoladi. Odatda, yangi satr o'chirib tashlanadi.

-

O'qish tugmalarini belgilaydi. Buni ta'qib qilayotgan argument, agar u a - bilan boshlangan bo'lsa ham, birinchi arg kabi muomala qilinadi.

Agar arg (yoki juft arg ) pastda ta'riflangan shakllardan biri bo'lsa, subprocess (lar) o'rtasida kirish va chiqish oqimini nazorat qilish uchun exec tomonidan ishlatiladi. Bunday bahslar subprocess (lar) ga o'tkazilmaydi. '' Fayl nomi '' shaklidagi faylda '' '' '' '' '' 'alohida argumentga yoki' '' '' yoki '' fayl nomi '' bilan bir xil argumentga ega bo'lishi mumkin.

|

Quvurdagi alohida buyruqlar ajratadi. Yuqoridagi buyruqning standart chiqishi keyingi buyruqning standart kiritilishiga kiritiladi.

| |

Quvurdagi alohida buyruqlar ajratadi. Yuqoridagi buyruqning standart chiqishi va standart xatosi keyingi buyruqning standart kiritilishiga kiritiladi. Ushbu qayta yo'naltirish shakli 2> va> &.

< fayl nomi

Fayl nomi bilan ataladigan fayl ochiladi va quvur liniyasidagi birinchi buyruqlar uchun standart kirish sifatida ishlatiladi.

<@ fileId

FileId ochiq fayl uchun identifikator bo'lishi kerak, masalan, oldingi qo'ng'iroqdan ochiladigan qiymatdan qaytish qiymati. Bu quvurda birinchi buyruqlar uchun standart kirish sifatida ishlatiladi. FileId o'qish uchun ochilgan bo'lishi kerak.

<< qiymati

Qiymat standart buyrug'i sifatida birinchi buyruqqa o'tkaziladi.

> fileName-ni tanlang

Oxirgi buyruqdan standart chiqish fileName nomli faylga qayta yo'naltiriladi va avvalgi tarkibga yoziladi.

2> fileName

Quvurning barcha buyruqlaridagi standart xato fileName nomli faylga qayta yo'naltiriladi, oldingi tarkibga yoziladi.

> & fileName

Barcha buyruqlardagi oxirgi buyruq va standart xatolardan standart chiqish ikkita faylName deb nomlangan faylga qayta yo'naltiriladi va avvalgi tarkibga yoziladi.

>> fileName

Oxirgi buyruqdan standart chiqish fileName nomli faylga yo'naltiriladi, unga yozib qo'yish o'rniga unga qo'shiladi.

2 >> fileName

Quvurning barcha buyruqlaridagi standart xato fileName nomli faylga qayta yo'naltirilsa, uni qo'shib qo'yish o'rniga qo'shiladi.

>> & fileName

Har ikkala buyruqdagi oxirgi buyruq va standart xatolardan standart chiqish ikkita faylName deb ataladigan faylga yo'naltiriladi, uni yozib qo'yish o'rniga unga qo'shiladi.

> @ fileId

FileId ochiq fayl uchun identifikator bo'lishi kerak, masalan, oldingi qo'ng'iroqdan ochiladigan qiymatdan qaytish qiymati. Oxirgi buyruqdan standart chiqish faylni yozish uchun ochilgan bo'lishi kerak bo'lgan fileId fayliga qayta yo'naltiriladi.

2> @ fileId

FileId ochiq fayl uchun identifikator bo'lishi kerak, masalan, oldingi qo'ng'iroqdan ochiladigan qiymatdan qaytish qiymati. Quvurning barcha buyruqlaridagi standart xato fileId fayliga yo'naltiriladi. Fayl yozish uchun ochilgan bo'lishi kerak.

> & @ fileId

FileId ochiq fayl uchun identifikator bo'lishi kerak, masalan, oldingi qo'ng'iroqdan ochiladigan qiymatdan qaytish qiymati. Barcha buyruqlardan olingan oxirgi buyruq va standart xatolardan standart chiqdi fileId fayliga yo'naltiriladi. Fayl yozish uchun ochilgan bo'lishi kerak.

Agar standart chiqish qayta yo'naltirilmagan bo'lsa, exec buyrug'i quvur liniyasidagi oxirgi buyruqdan standart chiqishni qaytaradi. Agar quvvatsizdagi buyruqlar birortasi g'ayrioddiy tarzda chiqib ketsa yoki o'ldirilsa yoki to'xtatilsa, exec xatolarni qaytaradi va xato xabari quvurning chiqishidan iborat bo'lib, keyinchalik g'ayritabiiy tugatishlarni tasvirlaydigan xato xabarlarni oladi; errorCode o'zgaruvchisi, duch kelgan so'nggi g'ayritabiiy bekor qilish haqida qo'shimcha ma'lumotlarni o'z ichiga oladi. Buyruqlar har biri standart xatolik fayliga yozib qo'yilsa va standart xatolik qayta yo'naltirilmasa, exec xatoni qaytaradi; xato xabari quvur liniyasining standart chiqimini, so'ngra anormal tugmalar (agar mavjud bo'lsa) haqidagi xabarlarni, so'ngra standart xato chiqishni o'z ichiga oladi.

Natijada yoki xato xulosasining oxirgi belgisi yangi chiziq bo'lsa, u belgi odatda natija yoki xato xabardan o'chiriladi. Bu odatda yangi qatorlar bilan tugamaydigan boshqa Tcl qaytish qiymatlari bilan mos keladi. Biroq, agar - kopnewline ko'rsatilsa, keyingi chiziq saqlanib qoladi.

Agar standart uskuna '``' 'yoki````` bilan qayta yo'naltirilmasa yoki'` <@' 'bo'lsa, u holda quvurdagi birinchi buyruqlar uchun standart kirish ilovaning joriy standart kiritmasidan olingan.

Agar oxirgi arg " ` & '' bo'lsa, u holda quvur fonda bajariladi. Bunday holda exec buyrug'i, elementlari quvurdagi barcha subprocesslar uchun jarayon identifikatorlari bo'lgan ro'yxatni qaytaradi. Quvurning oxirgi buyrug'idan olingan standart chiqish, agar qayta yo'naltirilmagan bo'lsa, dasturning standart chiqadigan qismiga o'tadi va qayta yo'naltirilmasa, quvur ichidagi barcha buyruqlardagi xato chiqishi dasturning standart xato fayliga o'tadi.

Har bir buyruqdagi birinchi so'z buyruqlar nomi sifatida qabul qilinadi; tilde-tiklash jarayoni amalga oshiriladi va agar natijada hech qanday chiziq bo'lmasa, PATH muhit o'zgaruvchisidagi kataloglar ushbu nom bilan olib boriladi. Agar nomdagi chiziq bo'lsa, u joriy papkada bajariladigan faylga murojaat qilishi kerak. Buyruqlarga argumentlarga 'glob' kengayishi yoki boshqa qobiq o'xshash tiklash jarayoni qilinmaydi.

Portativlik muammolari

Windows (barcha versiyalar)

'' @ FileId '' belgisini ishlatib, o'qish yoki uni rozetkaga yozish jarayoni ishlamaydi. Bir uyadan o'qish paytida, 16-bitlik DOS dasturi to'xtatiladi va 32-bitli dastur darhol faylning oxiriga qaytariladi. Qaysi dastur turi bir soketga yozilsa, uning o'rniga, agar mavjud bo'lsa, yoki uni tashlab yuboriladi.

Tk konsoli matnli widget haqiqiy standart IO imkoniyatlarini ta'minlamaydi. Tk ostida, standart kirishdan qayta yo'naltirilganda, barcha ilovalar favqulodda yakuniy faylni ko'radi; standart chiqish yoki standart xatoga yo'naltirilgan ma'lumotlar o'chirib tashlanadi.

Oldinga yoki orqaga qarab chiziqlar TCL komandalariga argumentlar uchun yo'l ajratuvchi sifatida qabul qilinadi. Ilovani bajarishda, dastur uchun belgilangan yo'l nomida yo'lni ajratuvchi sifatida oldinga yoki orqaga burilmagan bo'lishi mumkin. Shuni yodda tutingki, aksariyat Windows ilovalari argumentlarni faqat tanlangan chegaralar bilan qabul qiladi va faqat yo'llardagi cheklovlar va teskari tomonga buriladi. Ilovaning oldingi pog'onali yo'l nomini ko'rsatadigan har qanday argumentlari avtomatik ravishda teskari egri chiziqdan foydalanishga aylantirilmaydi. Agar dalillar yo'lak ajratgichi sifatida oldingi pog'onalarni bo'lsa, u dasturga bog'liq holda yo'l nomini tan olishi yoki olmasligi mumkin.

Bundan tashqari, 16-bit DOS yoki Windows 3.X dasturini chaqirsangiz, barcha yo'l nomlari qisqa, sirli, yo'l formatini ishlatishi kerak (masalan, "applbakery.default" o'rniga "applba ~ 1.def" ).

Yo'lda bir qatorda ikki yoki undan ortiq oldinga yoki orqaga burilgan parchalar tarmoq yo'liga mos keladi. Misol uchun, c: / pastki katalog / Windows / tizimi bilan ildiz katalogining oddiy birlashtirilishi c: // windows / system (ikkita chiziq bilan birgalikda) hosil qiladi. c: / e'tiborga olinmaydi) va joriy kompyuterda joylashgan katalogni tavsiflaydigan c: / windows / systemga teng emas. Fayl qo'shilish komandasi yo'l komponentlarini birlashtirish uchun ishlatilishi kerak.

Windows NT

Ilovani amalga oshirishga urinishda exec avval nomini qidirib topadi . So'ngra, .com , .exe va .bat uchun belgilangan nomning oxiriga qo'shiladi va u uzoq nomni qidiradi. Agar katalog nomi dastur nomining bir qismi sifatida ko'rsatilmagan bo'lsa, dasturni topishga urinayotganda quyidagi katalog avtomatik tarzda qidirishadi:

Tcl executable faylining yuklanadigan katalogi.
Joriy katalog.
Windows NT 32-bit tizim katalogi.
Windows NT 16-bit tizim katalogi.
Windows NT uy katalogi.
Yo'lda ko'rsatilgan kataloglar.

Shellni dir va nusxa ko'chirish kabi tuzilgan buyruqlar bajarish uchun chaqiruvchi kerakli buyruqga ` cmd.exe / c 'ni qo'shishi kerak.

Windows 95

Ilovani amalga oshirishga urinishda exec avval nomini qidirib topadi . So'ngra, .com , .exe va .bat uchun belgilangan nomning oxiriga qo'shiladi va u uzoq nomni qidiradi. Agar katalog nomi dastur nomining bir qismi sifatida ko'rsatilmagan bo'lsa, dasturni topishga urinayotganda quyidagi katalog avtomatik tarzda qidirishadi:

Tcl executable faylining yuklanadigan katalogi.
Joriy katalog.
Windows 95 tizim katalogi.
Windows 95 home directory.
Yo'lda ko'rsatilgan kataloglar.

Qo`shiqni dir va nusxa kabi tuzilgan buyruqlar bajarish uchun qo`ng'iroq qiluvchi `` command.com / c '' ni kerakli buyruqqa o`zgartirishlari kerak.

16-bitlik DOS dasturi konsoldan standart kiritilgan ma'lumotlarni o'qib chiqib, so'ngra barcha 16-bit DOS ilovalari ishga tushirilgandan so'ng standart kirishni yopiq qilib ko'radi. 32-bitli dasturlarda bu muammo yo'q va 16-bitlik DOS dasturi standart kirish yopiq deb o'ylashidan keyin ham to'g'ri ishlaydi. Ushbu xato uchun hozircha ma'lum vaqtinchalik echim yo'q.

NUL: qurilmani va 16 bitli dasturni qayta yo'naltirish har doim ham ishlamaydi. NUL'dan qayta yo'naltirilganda : ba'zi ilovalar osib qo'yilishi mumkin, boshqalar esa "0x01" baytda cheksiz oqimga ega bo'ladi va ba'zilari haqiqatdan ham favqulodda favqulodda holatlarga ega bo'ladi; xatti-harakat dasturga kiritilgan narsaga bog'liq ko'rinadi. 4K dan katta yoki yana NULga yo'naltirilganda : ba'zi ilovalar to'xtatiladi. Yuqoridagi muammolarni 32 bitli ilovalar bilan bajarish mumkin emas.

Barcha DOS 16-bitli ilovalar bir vaqtda ishlaydi. Quvurdan 16 bitli DOS ilovasiga barcha standart kirishlar vaqtinchalik faylga to'planadi; 16-bit DOS dasturi ishga tushirilguncha trubaning boshqa uchi yopiq bo'lishi kerak. 16-bit DOS ilovasidan quvurga barcha standart chiqish yoki xato vaqtinchalik fayllarga to'planadi; vaqtinchalik fayllar quvurning keyingi bosqichiga yo'naltirilgunga qadar, dastur tugatilishi kerak. Buning sababi, Windows 95 buglarining quvurlarni amalga oshirishdagi xatolari va standart Windows 95 DOS qobig'ining quvurlarni qanday boshqarishi.

Command buyrug'i kabi ba'zi ilovalar interaktiv tarzda bajarilmasligi kerak. Standart kirish va yozuvni standart chiqishidan o'qish o'rniga, konsol oynasiga to'g'ridan-to'g'ri kirishga ruxsat beruvchi ilovalar muvaffaqiyatsiz bo'lishi mumkin, Tcl-ni yopadi yoki hatto o'z shaxsiy konsol oynasi mavjud bo'lmasa tizimni osib qo'yishi mumkin.

Makintosh

Exec buyrug'i bajarilmaydi va Makintosh ostida mavjud emas.

Unix

Exec buyrug'i to'liq funktsional va tavsiflangan kabi ishlaydi.

Shuningdek qarang

xato (n), ochiq (n)

Kalit so'zlar

amalga oshirish, quvur liniyasi, qayta yo'naltirish, subprocess

Muhim: shaxsiy kompyuteringizda buyruq qanday ishlatilishini ko'rish uchun man buyrug'ini ( % man ) ishlating.