GNU/Linux >> Belajar Linux >  >> Linux

Untuk Env Atau Tidak Untuk Env?

Apa perbedaan antara perintah

$ env FOO=bar baz

dan

$ FOO=bar baz

Apa efek env punya?

Jawaban yang Diterima:

Mereka secara fungsional setara.

Perbedaan utamanya adalah env FOO=bar baz melibatkan pemanggilan proses perantara antara shell dan baz , sedangkan dengan FOO=bar baz shell langsung memanggil baz .
Jadi dalam hal itu, FOO=bar baz lebih disukai.

Satu-satunya situasi yang saya temukan menggunakan env FOO=bar di situlah saya harus meneruskan perintah ke perintah lain.
Sebagai contoh spesifik, katakanlah saya memiliki skrip pembungkus yang melakukan beberapa modifikasi lingkungan, dan kemudian memanggil exec pada perintah yang diteruskan, seperti:

#!/bin/bash
FOO=bob
some stuff
exec "[email protected]"

Jika Anda menjalankannya sebagai myscript FOO=bar baz , exec akan menimbulkan kesalahan sebagai exec FOO=bar baz tidak valid.
Sebagai gantinya Anda menyebutnya sebagai myscript env FOO=bar baz yang dieksekusi sebagai exec env FOO=bar baz , dan sangat valid.


Linux
  1. manajer langganan:perintah tidak ditemukan

  2. dnf:perintah tidak ditemukan

  3. bc:perintah tidak ditemukan

  1. id:perintah tidak ditemukan

  2. w:perintah tidak ditemukan

  3. df:perintah tidak ditemukan

  1. Env Vars Di /etc/environment Tidak Terlihat Secara Global?

  2. Apa yang Tidak Harus Dipasang Di SSD?

  3. du:perintah tidak ditemukan