GNU/Linux >> Belajar Linux >  >> Linux

Tambahkan ke Variabel Seperti Jalur Tanpa Membuat Titik Dua Utama Jika Tidak Disetel?

Saya perlu menambahkan direktori ke PKG_CONFIG_PATH . Biasanya, saya akan menggunakan standar

export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:$(pyenv prefix)/lib/pkgconfig

tapi PKG_CONFIG_PATH belum diatur sebelumnya di sistem saya. Oleh karena itu, variabel dimulai dengan : karakter, yang menyuruhnya untuk mencari di direktori saat ini terlebih dahulu. Saya tidak ingin itu. Saya memutuskan sebagai berikut,

export PKG_CONFIG_PATH=${PKG_CONFIG_PATH}${PKG_CONFIG_PATH:+:}$(pyenv prefix)/lib/pkgconfig

tapi itu sepertinya sangat jelek. Apakah ada cara yang lebih baik? Apa cara yang tepat untuk menambahkan titik dua secara kondisional jika dan hanya jika variabel telah disetel?

Jawaban yang Diterima:

Anda berada di jalur yang benar dengan ${:+} operator ekspansi, Anda hanya perlu sedikit memodifikasinya:

V=${V:+${V}:}new_V

Tanda kurung kurawal pertama diperluas ke $V dan titik dua iff V sudah disetel ke nol – itulah yang Anda butuhkan (dan mungkin juga salah satu alasan keberadaan operator).

Jadi dalam kasus Anda:

export "PKG_CONFIG_PATH=${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}$(pyenv prefix)/lib/pkgconfig"

Linux
  1. Apakah Saya Perlu Mengutip Substitusi Perintah Saat Menetapkan Outputnya Ke Variabel??

  2. Mengapa Ekspansi Variabel Tanpa $ Bekerja Dalam Ekspresi?

  3. Ssh – Perlu Tty Untuk Menjalankan Sudo Jika Saya Bisa Sudo Tanpa Kata Sandi?

  1. Linux – Bagaimana Cara Menghapus Variabel Lingkungan 'http_proxy' Dengan Python?

  2. Contoh Perintah Ekspor Linux (Cara Mengatur Variabel Lingkungan)

  3. Bagaimana cara mengekspor variabel secara permanen di Linux?

  1. Membuat soket mentah dengan Python tanpa hak akses root

  2. Ekspor variabel dari bash dan gunakan dengan Python

  3. Membuat file temp vs substitusi proses vs ekspansi variabel?