Exec - Linux Command - Unix Command

exec - Invoke subprocess (es)

Sinopsis

melaksanakan ? suis ? arg ? arg ... ?

Penerangan

Perintah ini merawat argumennya sebagai spesifikasi satu atau lebih subprocesses untuk dilaksanakan. Argumen-argumen tersebut mengambil bentuk saluran paip shell yang standard di mana setiap arg menjadi satu perkataan perintah, dan setiap perintah yang berbeda menjadi subproses.

Sekiranya hujah-hujah awal untuk memulakan dengan - maka ia dianggap sebagai suis baris perintah dan bukan sebahagian daripada spesifikasi paip. Suis berikut kini disokong:

-memilih semula

Mempertahankan garis baharu yang menguntungkan dalam output paip. Biasanya baris baru yang akan dibuang akan dihapuskan.

-

Menanda hujung suis. Hujah yang berikut ini akan dianggap sebagai arg pertama walaupun ia bermula dengan - .

Jika arg (atau pasangan arg ) mempunyai salah satu bentuk yang dinyatakan di bawah maka ia digunakan oleh exec untuk mengawal aliran input dan output di antara subprocess (es). Hujah-hujah tersebut tidak akan dihantar ke subprocess (es). Dalam borang seperti `` < fileName '' fileName mungkin sama ada dalam hujah yang berasingan daripada `` <'' atau dalam argumen yang sama tanpa ruang intervensi (iaitu `` < fileName '').

|

Mengasingkan arahan yang berbeza dalam perancangan. Output standard arahan terdahulu akan dimasukkan ke dalam input standard perintah seterusnya.

| &

Mengasingkan arahan yang berbeza dalam perancangan. Kedua-dua keluaran piawai dan ralat piawai arahan terdahulu akan disalurkan ke input standard perintah seterusnya. Borang pengalihan ini mengatasi bentuk seperti 2> dan> &.

< fileName

Fail bernama oleh fileName dibuka dan digunakan sebagai input standard bagi arahan pertama dalam perancangan.

<@ fileId

FileId mestilah pengenalpastian untuk fail terbuka, seperti nilai pulangan dari panggilan sebelumnya untuk dibuka . Ia digunakan sebagai input standard untuk arahan pertama dalam perancangan. FileId mestilah dibuka untuk membaca.

<< nilai

Nilai diluluskan kepada perintah pertama sebagai input standardnya.

> fileName

Output standard dari perintah terakhir diarahkan ke file bernama fileName , menimpa isi sebelumnya.

2> fileName

Kesalahan piawai dari semua arahan dalam perancangan diarahkan ke fail bernama fileName , menimpa kandungannya yang terdahulu.

> & fileName

Kedua-dua keluaran piawai dari perintah terakhir dan ralat piawai dari semua arahan diarahkan ke fail bernama fileName , menimpa kandungannya yang terdahulu.

>> fileName

Output standard dari perintah terakhir diarahkan ke file bernama fileName , menambahkannya bukannya menimpa.

2 >> fileName

Kesalahan piawai dari semua arahan dalam perancangan diarahkan ke fail bernama fileName , ditambah kepadanya dan bukannya menimpa.

>> & fileName

Kedua-dua keluaran piawai dari perintah terakhir dan ralat piawai dari semua arahan diarahkan ke fail bernama fileName , ditambah kepadanya dan bukannya menggantikannya.

> @ fileId

FileId mestilah pengenalpastian untuk fail terbuka, seperti nilai pulangan dari panggilan sebelumnya untuk dibuka . Output standard dari perintah terakhir diarahkan ke fail fileId , yang mesti dibuka untuk menulis.

2> @ fileId

FileId mestilah pengenalpastian untuk fail terbuka, seperti nilai pulangan dari panggilan sebelumnya untuk dibuka . Kesalahan piawai dari semua arahan dalam perancangan diarahkan ke fail fileId . Fail ini mesti dibuka untuk menulis.

> & @ failId

FileId mestilah pengenalpastian untuk fail terbuka, seperti nilai pulangan dari panggilan sebelumnya untuk dibuka . Kedua-dua keluaran piawai dari perintah terakhir dan ralat piawai dari semua arahan diarahkan ke fail fileId . Fail ini mesti dibuka untuk menulis.

Jika output standard tidak diarahkan semula maka arahan pelaksanaan mengembalikan output standard dari arahan terakhir dalam perancangan. Jika mana-mana arahan dalam peralihan keluar secara tidak normal atau terbunuh atau digantung, maka exec akan memulangkan ralat dan mesej ralat akan menyertakan output saluran paip diikuti dengan mesej ralat yang menghuraikan penamatan yang tidak normal; pembolehubah errorCode akan mengandungi maklumat tambahan tentang penamatan abnormal terakhir yang ditemui. Sekiranya mana-mana perintah menulis kepada fail ralat piawai dan bahawa ralat piawai tidak dialihkan, maka exec akan mengembalikan ralat; mesej ralat akan merangkumi output standard saluran paip, diikuti dengan mesej mengenai penamatan yang tidak normal (jika ada), diikuti dengan keluaran ralat standard.

Jika aksara terakhir mesej hasil atau ralat adalah garis baharu maka watak itu biasanya dipadamkan dari mesej hasil atau ralat. Ini konsisten dengan nilai pulangan Tcl yang lain, yang biasanya tidak berakhir dengan baris baru. Walau bagaimanapun, jika -dilapan semula ditentukan maka baris baharu yang terlintas dikekalkan.

Jika input standard tidak diarahkan dengan `` <'' atau `` << '' atau `` <@ '' maka input standard untuk arahan pertama dalam perancangan diambil dari input standard semasa aplikasi.

Jika arg terakhir adalah `` & '' maka saluran paip akan dilaksanakan di latar belakang. Dalam hal ini arahan pelaksanaan akan mengembalikan senarai yang unsurnya adalah pengenal proses untuk semua subproses dalam perancangan. Output standard dari arahan terakhir dalam saluran paip akan pergi ke output standard aplikasi jika ia tidak diarahkan semula, dan keluaran kesalahan dari semua perintah dalam pipeline akan pergi ke fail kesilapan standard aplikasi kecuali dialihkan.

Perkataan pertama dalam setiap perintah diambil sebagai nama arahan; penggantian tilde dilakukan di atasnya, dan jika hasilnya tidak mengandungi garis miring maka direktori dalam pembolehubah persekitaran PATH dicari untuk dijalankan oleh nama yang diberikan. Jika nama tersebut mengandungi garis miring maka ia mesti merujuk kepada laku boleh laku yang boleh dicapai dari direktori semasa. Tiada penggantian `` glob '' atau penggantian seperti shell lain yang dilakukan pada argumen kepada arahan.

Isu Mudah Alih

Windows (semua versi)

Membaca atau menulis ke soket, menggunakan notasi `` @fileId ', tidak berfungsi. Apabila membaca dari soket, aplikasi DOS 16-bit akan digantung dan aplikasi 32-bit akan kembali dengan serta-merta dengan fail akhir. Apabila salah satu jenis aplikasi menulis ke soket, maklumat itu akan dihantar ke konsol, jika ada, atau dibuang.

Widget teks konsol Tk tidak menyediakan keupayaan IO standard sebenar. Di bawah Tk, apabila mengalihkan dari input standard, semua aplikasi akan melihat fail akhir segera; Maklumat yang dialihkan kepada keluaran standard atau ralat piawai akan dibuang.

Sama ada slash ke hadapan atau ke belakang diterima sebagai pemisah laluan bagi argumen kepada arahan Tcl. Apabila melaksanakan suatu permohonan, nama laluan yang ditetapkan untuk aplikasi itu juga mungkin mengandungi garis miring ke hadapan atau ke belakang sebagai pemisah jalan. Perlu diingat, bagaimanapun, bahawa kebanyakan aplikasi Windows menerima argumen dengan slash ke hadapan hanya sebagai pembatas pilihan dan backslashes hanya dalam laluan. Sebarang hujah kepada aplikasi yang menentukan nama laluan dengan garis miring ke depan tidak akan ditukar secara automatik untuk menggunakan aksara lari belakang. Jika hujah mengandungi garis miring ke hadapan sebagai pemisah jalur, ia mungkin atau mungkin tidak diiktiraf sebagai nama laluan, bergantung kepada program.

Selain itu, apabila memanggil aplikasi DOS atau Windows 3.X 16-bit, semua nama laluan mestilah menggunakan format pendek, cryptic, path (contohnya, menggunakan `` applba ~ 1.def '' bukan `` applbakery.default '' ).

Dua atau lebih slashes ke hadapan atau ke belakang berturut-turut dalam laluan merujuk kepada laluan rangkaian. Contohnya, penggabungan ringkas direktori root c: / dengan subdirectory / windows / system akan menghasilkan c: // windows / system (dua garis miring bersama), yang merujuk kepada titik mount yang dipanggil sistem pada mesin yang disebut windows (dan c: / diabaikan), dan tidak sama dengan c: / windows / system , yang menggambarkan direktori pada komputer semasa. Perintah gabungan fail harus digunakan untuk menggabungkan komponen jalur.

Windows NT

Apabila cuba melaksanakan sesuatu aplikasi, lakukan carian terlebih dahulu untuk nama tersebut seperti yang ditetapkan. Kemudian, dalam perintah, .com , .exe , dan .bat dilampirkan pada akhir nama yang ditentukan dan ia mencari nama yang lebih lama. Jika nama direktori tidak ditentukan sebagai sebahagian daripada nama aplikasi, direktori berikut secara automatik dicari dalam susunan apabila cuba mencari aplikasi:

Direktori yang boleh dieksekusi oleh Tcl dimuatkan.
Direktori semasa.
Direktori sistem Windows NT 32-bit.
Direktori sistem Windows NT 16-bit.
Direktori rumah Windows NT.
Direktori yang disenaraikan dalam laluan.

Untuk melaksanakan perintah terbina shell seperti dir dan salin , pemanggil mesti menyiapkan `` cmd.exe / c '' kepada arahan yang dikehendaki.

Windows 95

Apabila cuba melaksanakan sesuatu aplikasi, lakukan carian terlebih dahulu untuk nama tersebut seperti yang ditetapkan. Kemudian, dalam perintah, .com , .exe , dan .bat dilampirkan pada akhir nama yang ditentukan dan ia mencari nama yang lebih lama. Jika nama direktori tidak ditentukan sebagai sebahagian daripada nama aplikasi, direktori berikut secara automatik dicari dalam susunan apabila cuba mencari aplikasi:

Direktori yang boleh dieksekusi oleh Tcl dimuatkan.
Direktori semasa.
Direktori sistem Windows 95.
Direktori rumah Windows 95.
Direktori yang disenaraikan dalam laluan.

Untuk melaksanakan perintah terbina shell seperti dir dan salin , pemanggil mesti membuat perintah `` command.com / c '' kepada arahan yang dikehendaki.

Apabila aplikasi DOS 16-bit telah membaca input standard dari konsol dan kemudian berhenti, semua kemudian menjalankan aplikasi DOS 16-bit akan melihat input standard sebagai sudah ditutup. Aplikasi 32-bit tidak mempunyai masalah ini dan akan berjalan dengan betul, walaupun selepas aplikasi DOS 16-bit berfikir bahawa input standard ditutup. Tiada penyelesaian yang diketahui untuk bug ini pada masa ini.

Pengalihan antara NUL: peranti dan aplikasi 16-bit tidak semestinya berfungsi. Apabila mengalihkan dari NUL:, sesetengah aplikasi mungkin digantung, yang lain akan mendapat arus tak terhingga daripada `` 0x01 '' bait, dan sesetengahnya akan benar mendapatkan fail akhir yang segera; tingkah laku nampaknya bergantung pada sesuatu yang disusun ke dalam aplikasi itu sendiri. Apabila mengalihkan lebih daripada 4K atau lebih kepada NUL:, sesetengah aplikasi akan digantung. Masalah di atas tidak berlaku dengan aplikasi 32-bit.

Semua aplikasi 16-bit DOS dijalankan serentak. Semua input standard dari paip ke aplikasi DOS 16-bit dikumpulkan ke dalam fail sementara; hujung paip yang lain mesti ditutup sebelum aplikasi DOS 16-bit mula dilaksanakan. Semua keluaran atau ralat standard dari aplikasi DOS 16-bit ke paip dikumpulkan ke dalam fail sementara; permohonan mesti ditamatkan sebelum fail sementara dialihkan ke tahap seterusnya saluran paip. Ini adalah kerana penyelesaian untuk bug Windows 95 dalam pelaksanaan paip, dan bagaimana shell Windows 95 DOS biasa mengendalikan paip itu sendiri.

Aplikasi tertentu, seperti command.com , tidak boleh dilaksanakan secara interaktif. Aplikasi yang secara langsung mengakses tetingkap konsol, daripada membaca dari input standard mereka dan menulis kepada output standard mereka mungkin gagal, menggantung Tcl, atau bahkan menggantung sistem jika tetingkap konsol peribadi mereka sendiri tidak tersedia kepada mereka.

Macintosh

Perintah eksekusi tidak dilaksanakan dan tidak wujud di bawah Macintosh.

Unix

Perintah eksekusi berfungsi sepenuhnya dan berfungsi seperti yang diterangkan.

Lihat juga

ralat (n), buka (n)

Kata kunci

jalankan, peralihan, redirection, subprocess

Penting: Gunakan arahan lelaki ( % man ) untuk melihat bagaimana arahan digunakan pada komputer tertentu anda.