GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menambahkan Ke $path dengan Bersih?

Saya ingin cara untuk menambahkan sesuatu ke $PATH, di seluruh sistem atau untuk pengguna individu, tanpa berpotensi menambahkan jalur yang sama beberapa kali.

Salah satu alasan ingin melakukan ini adalah agar penambahan dapat dilakukan di .bashrc , yang tidak memerlukan login, dan juga lebih berguna pada sistem yang menggunakan (mis.) lightdm , yang tidak pernah memanggil .profile .

Saya mengetahui pertanyaan yang berhubungan dengan cara membersihkan duplikat dari $PATH, tetapi Saya tidak ingin menghapus duplikat . Saya ingin cara menambahkan jalur hanya jika belum ada.

Jawaban yang Diterima:

Misalkan path baru yang ingin kita tambahkan adalah:

new=/opt/bin

Kemudian, dengan menggunakan shell POSIX apa pun, kita dapat menguji untuk melihat apakah new sudah ada di jalur dan tambahkan jika belum:

case ":${PATH:=$new}:" in
    *:"$new":*)  ;;
    *) PATH="$new:$PATH"  ;;
esac

Perhatikan penggunaan titik dua. Tanpa titik dua, kita mungkin berpikir bahwa, katakanlah, new=/bin sudah ada di jalur karena polanya cocok dengan /usr/bin . Sementara PATH biasanya memiliki banyak elemen, kasus khusus nol dan satu elemen di PATH juga ditangani. Kasus PATH yang awalnya tidak memiliki elemen (kosong) ditangani dengan menggunakan ${PATH:=$new} yang menetapkan PATH ke $new jika kosong. Menyetel nilai default untuk parameter dengan cara ini adalah fitur dari semua shell POSIX:lihat bagian 2.6.2 dari dokumen POSIX.)

Fungsi yang dapat dipanggil

Untuk kenyamanan, kode di atas dapat dimasukkan ke dalam suatu fungsi. Fungsi ini dapat didefinisikan pada baris perintah atau, agar tersedia secara permanen, dimasukkan ke dalam skrip inisialisasi shell Anda (Untuk pengguna bash, itu adalah ~/.bashrc ):

pupdate() { case ":${PATH:=$1}:" in *:"$1":*) ;; *) PATH="$1:$PATH" ;; esac; }

Untuk menggunakan fungsi pembaruan jalur ini untuk menambahkan direktori ke PATH saat ini:

pupdate /new/path

Linux
  1. Bagaimana cara menambahkan repositori Yum

  2. Cara Menambahkan Banyak Host di phpMyAdmin

  3. Bagaimana cara menambahkan pengguna ke grup di Linux

  1. Bagaimana saya bisa menambahkan dir ke $PATH di Makefile?

  2. Bagaimana saya bisa mengedit $PATH di linux?

  3. Bagaimana cara menambahkan direktori tertentu ke jalur pencarian updatedb (locate)?

  1. Cara Menambahkan Direktori ke PATH di Linux [Dengan Contoh]

  2. Bagaimana Cara Benar Menambahkan Path To Path?

  3. ldd tidak menemukan jalur, Bagaimana menambahkan