Próbuję uruchomić openscad
z wiersza polecenia i generuje błąd, ale jeśli wypiszę całą zgłoszoną ścieżkę, według której działa, jak pokazano poniżej.
[dataproc@Euclid ~]$ which openscad
/usr/bin/openscad
[dataproc@Euclid ~]$ openscad
bash: /usr/local/bin/openscad: No such file or directory
[dataproc@Euclid ~]$ /usr/bin/openscad
[dataproc@Euclid ~]$ #this worked
Nie mam pojęcia, co się tu dzieje, każda pomoc byłaby bardzo mile widziana.
type openscad
produkuje?echo $PATH
Odpowiedzi:
which
kłamstwa; potrafi raportować rzeczy na podstawie wyidealizowanej sytuacji zebranej z twoich plików startowych powłoki, jednocześnie tracąc pewne możliwości i nie wychwytując żadnych zmian, których nie dokonały standardowe pliki. Użyj,type
aby zobaczyć, co naprawdę myśli shell.Zewnętrzne polecenia po prostu nie potrafią powiedzieć, co się naprawdę stanie, ponieważ muszą zgadywać funkcje i aliasy na podstawie plików startowych i nie będą wiedzieć o rzeczach tworzonych przez
autoload
mechanizmy; musisz zapytać samą powłokę, co ona zrobi.źródło
type openscad
. Właśnie to próbowałem wyjaśnić; najwyraźniej mi się nie udało.hash -r
a następnietype openscad
ponownie. Wygląda na to, że mógł być w/usr/local/bin
środku, został przeniesiony, a powłoka nie zaktualizowała skrótu lokalizacji wewnętrznej.Bez znajomości twojego .profile (.bashrc itp.) Tylko zgadywanie, niż gdzieś masz
i dlatego twój bash próbuje uruchomić / usr / local / bin / openscad, a nie domyślny w / usr / bin.
źródło