Bagaimana cara mengatasi spasi ketika mengatur $ PATH


11

Saya ingin menambahkan lib luhur ke jalan saya tetapi memiliki ruang di dalamnya.

Saya sudah mencoba yang jelas seperti Anda akan menavigasi di terminal ( misalnya /Applications/Sublime\ Text\ 2.app/Contents )

export PATH="/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl:$PATH"

Tapi saya masih mendapatkan kesalahan

/Applications/Sublime: No such file or directory

Saya bisa mengganti nama tetapi saya ingin tahu bagaimana menyelesaikannya. Saya menggunakan bash.


mencoba export PATH='/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH? Juga, apakah baris baru itu dimaksudkan?
demure

Tidak, ini bukan baris baru yang keluar begitu saja ketika saya menempelkannya. Saran Anda tidak membantu dan itu membunuh jalan saya sehingga tidak bisa menggunakan vi, harus beralih ke shell yang berbeda untuk mengubahnya kembali.
Shawn Vader

1
saran demure harus melakukannya, tetapi gunakan tanda kutip ganda: export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH", jika tidak $ PATH tidak akan diperluas.
jaume

Saya memilikinya sebagai tanda kutip ganda awalnya tetapi dalam .bashrc masih tidak menyukainya.
Shawn Vader

Bisakah Anda lebih tepat? Apa yang Anda maksud dengan "tidak menyukainya"? Apakah Anda mendapatkan kesalahan (yang mana)? Atau itu tidak berhasil?
jaume

Jawaban:


12

Gunakan garis miring terbalik atau tanda kutip, bukan keduanya. Anda menempatkan urutan backslash-space di PATH nilai.

export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"

atau

export PATH=/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl:$PATH

Pastikan untuk tidak membungkus baris: itu harus spasi, bukan baris baru.

Perhatikan bahwa jika Anda melihat kesalahan seperti /Applications/Sublime: No such file or directory dari export PATH=… baris, maka Anda memiliki kesalahan sintaksis di baris itu, seperti spasi setelah tanda sama dengan: tugas tidak mencoba mencari direktori. Jika kesalahan terjadi di lain waktu, maka itu bukan karena nilai PATH, atau jika demikian hanya secara tidak langsung: itu sangat ok untuk entri di $PATH tidak ada, dan direktori yang tidak ada tidak akan mengarah ke pesan kesalahan.


3

Untuk mengatasinya saya membuat symlink di

ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /usr/local/sublime/bin/subl

Saya kemudian menambahkannya ke jalur saya dengan menggunakan vi pada ~. / Bashrc

export PATH="/usr/local/sublime/bin/:$PATH"

Ingatlah untuk sumber .bashrc untuk mengambil perubahan Anda

source ~/.bashrc

3

Jika jalur diatur dengan benar pada .bash_profile, apakah dengan tanda kutip ganda atau garis miring terbalik dan memiliki spasi di dalamnya, Anda perlu memanggil variabel dengan tanda kutip ganda .

Misalnya, jika .bash_profile diatur seperti di bawah ini:

export SUBLIMEPATH="/Applications/Sublime Text 2.app/Contents"
export PATH=$PATH:$SUBLIMEPATH/SharedSupport/bin/subl

Kamu tidak bisa melakukan cd $SUBLIMEPATH untuk mengubah direktori saat ini, Anda akan mendapatkannya No such file or directory kesalahan. Tetapi dengan tanda kutip ganda seperti cd "$SUBLIMEPATH" kamu bisa.

Semoga ini bisa membantu sesuatu.


1

Ini tidak menjawab pertanyaan. Namun, itu membahas sebagai komentar yang dibuat dalam salah satu jawaban, dan membahas prosedur yang sama.

Dimungkinkan juga untuk membuat alias untuk Teks Luhur dengan mengedit .bash_profile atau .bashrc (mana yang merupakan file konfigurasi BASH di direktori home Anda).

alias sublime="/Applications/Sublime\ Text.app/Contents/MacOS/Sublime\ Text"

Untuk melakukannya, perlu untuk menggunakan KEDUA melarikan diri garis miring dan kutipan . Perhatikan khususnya bahwa ini adalah situasi yang sangat berbeda dari mengekspor PATH seperti yang disebutkan di atas, karena hanya masuk akal untuk melakukan satu atau yang lain, tetapi tidak kedua.

Perhatikan juga bahwa tidak perlu membuat symlink terlebih dahulu, seperti yang dinyatakan oleh dokumentasi Sublime resmi dan banyak sumber lainnya. Jawaban ini pada StackOverflow memperbaikinya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.