Terminalde $ PATH yazdıktan sonra böyle bir dosya veya dizin yok


13

terminalde yazdığımda

echo $PATH

benim çıktım

:/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin

ama sadece yazarken:

$PATH

bu çıkış doğru anlamıyorum, çıktı:

bash: :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin: No such file or directory

ve sorum şu, neden "Böyle bir dosya veya dizin yok?" PATH değişkeninden her dizin var.

Yanıtlar:


20

$PATHfarkında olduğunuz bir değişken. Bu değişken çözüldüğünde, yazmak :/home/bo/bin:/usr/local/bin:/usr/sbin:/usr/local/sbin:/usr/bin:/sbin:/bin:ve bir şeyler olmasını beklemekle aynı şey olur. Bunun nedeni echo $PATH, terminale "yapmasını" söylemekten ziyade açıkça ekrana bağlamanızdır $PATH.


2

Hala diğer cevaplardan alamıyorsanız, bununla aynıdır:

$ echo the quick brown fox
the quick brown fox
$ the quick brown fox
bash: the: command not found

$ echo and/or the black and white cats
and/or the black and white cats
$ and/or the black and white cats
bash: and/or: No such file or directory

Her komut satırının ilk sözcüğü bir komut olmalıdırechoböyle bir komuttur.  the,, and/orve :/home/bo/bin:/usr/local/bin:/usr/sbin…değildir. Ve görünüşe göre, komut olmayan bir sözcükle başlayan bir komut satırı yazdığınızda, bash No such file or directorysözcüğün bir veya daha fazla /karakter içerip içermediğini ve içermediğini söyler command not found.


1

Yazarak

$ PATH

aslında içeriğini komut satırında genişletmekten başka bir şey yapmıyorsunuz:

: / Home / bo / bin: / usr / local / bin: / usr / sbin: / usr / local / sbin: / usr / bin / sbin: / bin

ve bu geçerli bir komut değildir ve yasal olarak aldığınız iletiye yönlendirir.

Sadece yazmanın ne yapmasını bekliyordunuz $PATH?


$PATHDeğişkeni yürütmeye çalışmadan ekrana yazdıracağı beklentisini tahmin ediyorum, ancak durum böyle değil.
iDrwish

0

Linux'ta terminal bir bekliyor command, $ PATH bir komut değil, bir variable.

Yazarken echo $PATHdeğişkenin içeriğini soruyorsunuz ve komutu echoekranda gösteriyor.


0

Değişken $PATH, iki nokta üst üste ile ayrılmış birden çok dizin içerir. Kabuk, yürütülebilir bir dosya veya başka bir komut (örneğin, bir kabuk yerleşik komutu, gibi cd) girdi olarak bekliyor. Gibi Komutları lsve catsadece $ PATH dizinleri birinde bulunan yürütülebilir dosyalar vardır. İki nokta üst üste ile birleştirilmiş zincirler genellikle uygun bir UNIX dosya yolu oluşturmaz. Uyarı: İki nokta üst üste olmadan dizinlerden yalnızca birini girerseniz, farklı bir çıktı alırsınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.