Perintah bash setenv tidak ditemukan

10

Ketika saya menggunakan perintah berikut

         setenv CLASSPATH /path/mysql-connector-java-ver-bin.jar:$CLASSPATH

kesalahan adalah

        bash setenv command is not found

Ketika saya menemukan path setenv dengan perintah mana, maka saya menemukan path berikut

 (/usr/kerberos/sbin:/usr/kerberos/bin:/home/ec2/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/ec2/bin:/root/bin)
Rui F Ribeiro
sumber

Jawaban:

15

setenvmilik (t)csh, bukan bashyang merupakan shell default di CentOS. Menggunakan

export CLASSPATH="/path/mysql-connector-java-ver-bin.jar:$CLASSPATH"

sebagai gantinya.

Janne Pikkarainen
sumber
3

Bahkan lebih baik karena lebih bersih, gunakan notasi awalan (tanpa set) pada perintah yang ingin Anda panggil:

CLASSPATH=/path/mysql-connector-java-ver-bin.jar:$CLASSPATH ANOTHER_VAR=bla ATHIRD_VAR=blu java -...

Sekarang javaproses yang Anda panggil akan dapat mengumpulkan variabel lingkungan sementara Anda CLASSPATH, ANOTHER_VARdan ATHIRD_VAR.

Jika Anda menggunakan export, maka variabel juga akan ditetapkan secara global (?), Setidaknya di lingkungan skrip. Dan, nilai-nilai variabel yang sudah ada akan ditimpa oleh nilai-nilai baru.

Keuntungan dari notasi awalan:

  • nilai-nilai sebelumnya dari suatu variabel harus tetap tidak berubah, yaitu dalam kasus nilai-nilai lama diperlukan nanti, maka tidak perlu menyimpan nilai-nilai lama dari variabel yang sudah ada untuk mengembalikannya setelah doa
  • tidak perlu unsetvariabel sementara Anda untuk keperluan pembersihan setelah doa
pengguna160163
sumber