Skip to main content

Linux - Unix Command: exec

Basic Unix Commands (Jun 2026)

Basic Unix Commands (Jun 2026)
Anonim

exec - Invoke subprocess (es)

Sinopsis

exec? suis ? arg ? arg … ?

Penerangan

Perintah ini merawat argumennya sebagai spesifikasi satu atau lebih subprocesses untuk dilaksanakan. Hujah-hujah mengambil bentuk saluran paip shell standard di mana masing-masing arg menjadi satu perkataan perintah, dan setiap perintah yang berbeza menjadi subproses.

Jika hujah permulaan kepadaexec bermula dengan- maka mereka 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 yang pertama arg walaupun ia bermula dengan a-.

Sekiranya arg (atau pasangan arg 's) mempunyai salah satu bentuk yang diterangkan di bawah maka ia digunakan olehexec untuk mengawal aliran input dan output di antara subprocess (es). Hujah-hujah tersebut tidak akan dihantar ke subprocess (es). Dalam borang seperti `` < nama fail '' nama fail boleh sama ada dalam hujah yang berasingan dari `` <'' atau dalam hujah yang sama tanpa ruang intervensi (iaitu `` < nama fail '').

|

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> &.

< nama fail

Fail yang dinamakan oleh nama fail dibuka dan digunakan sebagai input standard bagi arahan pertama dalam perancangan.

<@ fileId

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

<< nilai

Nilai diluluskan kepada perintah pertama sebagai input standardnya.

> nama fail

Output standard dari perintah terakhir diarahkan ke fail bernama nama fail , menimpa kandungannya yang terdahulu.

2> nama fail

Kesalahan standard dari semua arahan dalam perancangan akan diarahkan semula ke fail bernama nama fail , menimpa kandungannya yang terdahulu.

>& nama fail

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

>> nama fail

Output standard dari perintah terakhir diarahkan ke fail bernama nama fail , menambahnya bukannya menggantikannya.

2>> nama fail

Kesalahan standard dari semua arahan dalam perancangan akan diarahkan semula ke fail bernama nama fail , menambahnya bukannya menggantikannya.

>>& nama fail

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

>@ fileId

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

2>@ fileId

FileId mesti pengenalpastian untuk fail terbuka, seperti nilai pulangan dari panggilan sebelumnya kepadabuka. Kesalahan standard dari semua arahan dalam perancangan akan dialihkan kepada fileId fail. Fail ini mesti dibuka untuk menulis.

>&@ fileId

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

Jika output standard tidak diarahkan semula makaexec arahan mengembalikan output standard dari arahan terakhir dalam perancangan. Jika mana-mana arahan dalam peralihan keluar secara tidak normal atau terbunuh atau digantung, makaexec akan mengembalikan ralat dan mesej ralat akan menyertakan output saluran paip diikuti dengan mesej ralat yang menghuraikan penamatan yang tidak normal; yangkod salah pembolehubah akan mengandungi maklumat tambahan tentang penamatan abnormal terakhir yang ditemui. Jika mana-mana perintah menulis kepada fail ralat piawai dan ralat piawai tidak dialihkan, makaexec 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-memilih semula dinyatakan kemudian garis jejak trailing dikekalkan.

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

Jika yang terakhir arg adalah `` & '' maka saluran paip akan dilaksanakan di latar belakang. Dalam kes ini,execarahan 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 dari atau menulis ke soket, menggunakan ``@ fileId 'notasi, 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 rootc: / dengan subdirektori/ windows / system akan menghasilkanc: // windows / system (dua garis miring bersama), yang merujuk kepada titik gunung yang dipanggilsistem pada mesin yang dipanggiltingkap (dan jugac: / tidak diendahkan), dan tidak bersamaanc: / windows / system, yang menerangkan direktori pada komputer semasa. Thefail bergabung arahan hendaklah digunakan untuk menggabungkan komponen laluan.

Windows NT

Apabila cuba melaksanakan sesuatu permohonan,exec Carian pertama untuk nama seperti yang ditetapkan. Kemudian, demi,.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 sepertidir dansalinan, pemanggil mesti menyediakan ``cmd.exe / c'' kepada arahan yang dikehendaki.

Windows 95

Apabila cuba melaksanakan sesuatu permohonan,exec Carian pertama untuk nama seperti yang ditetapkan. Kemudian, demi,.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 sepertidir dansalinan, pemanggil mesti menyediakan ``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 semula antaraNUL: peranti dan aplikasi 16-bit tidak semestinya berfungsi. Apabila mengalihkan dariNUL:, sesetengah aplikasi mungkin digantung, yang lain akan mendapat aliran tak terbatas `` 0x01 '' bait, dan sesetengahnya akan benar mendapatkan fail akhir segera; tingkah laku nampaknya bergantung pada sesuatu yang disusun ke dalam aplikasi itu sendiri. Apabila mengalihkan lebih daripada 4K atau lebih kepadaNUL:, beberapa 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, seperticommand.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

Theexec arahan tidak dilaksanakan dan tidak wujud di bawah Macintosh.

Unix

Theexec perintah berfungsi sepenuhnya dan berfungsi seperti yang diterangkan.

Lihat juga

ralat (n), buka (n)

Kata kunci

jalankan, peralihan, redirection, subprocess

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