“Bukan pengidentifikasi yang valid” ketika saya melakukan “ekspor $ PATH”

37

Ketika saya menjalankan export $PATHdalam bash, saya mendapatkan kesalahan not a valid identifier. Mengapa?

ThaSaleni
sumber
8
Dalam bash dan shell lainnya, $adalah "nilai". Anda mengekspor variabel PATH, tidak mengakses nilainya, jadi export PATHtanpa $.
Gilles 'SO- berhenti bersikap jahat'
Masalah serupa yang lebih umum: askubuntu.com/questions/529919/…
Vadzim

Jawaban:

40

Menjalankan export $PATHakan mencoba untuk mengekspor variabel dengan nama sama dengan nilai dari $PATH(setelah kata membelah ). Artinya, ini setara dengan menulis sesuatu seperti export /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin. Dan karena /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binitu bukan nama variabel yang valid, itu gagal. Yang ingin Anda lakukan adalah export PATH.

export(setara dengan declare -x) di Bash hanya membuat variabel tersedia untuk subkulit.

Untuk mencetak nilai variabel dengan aman dan mudah dibaca, gunakan printf %q "$PATH".

l0b0
sumber
Pada dasarnya saya telah membuat beberapa variabel, JAVA_HOME, MAVEN_HOME dan ingin memastikan bahwa bash telah mengaturnya dengan benar, jadi saya mengekspor $ PATH untuk melihat apakah variabel path telah diatur dengan benar ke variabel PATH
ThaSaleni
1
Ini tergantung pada shell, bukan tergantung pada OS. Saya akan terkejut jika exportpernah bekerja seperti itu di Bash.
l0b0
Selain itu, variabel PATH sudah diekspor dan tidak perlu diekspor lagi.
Kusalananda
19

Perintah berikut export $PATH=somePathakan kembali not a valid identifierdan itu karena variabel $sebelum PATH.

larutan:

export PATH=somePath

Kevin Crain
sumber
0

Anda harus menggunakannya dengan cara ini:

export PATH=$PATH:/something/bin

Dari pada:

export $PATH=$PATH:/something/bin

hapus saja $tanda dari sisi kiri.

Abd ElRahman Mahareek
sumber
-1

Anda mungkin perlu menambahkan $ PATH ke variabel PATH yang ada?

export PATH=$PATH:/something/bin
Guidry Thad
sumber
2
OKE, ini ada di ball park yang sama dengan pertanyaannya, tapi ada di sebelah kiri.
G-Man Mengatakan 'Reinstate Monica'