Zastanawiam się, czy istnieje zmienna środowiskowa systemu Windows dla Uniksa PATHEXT
.
Dla osób bez tła Windows: Dodanie przyrostka pliku PATHEXT
pozwala mi wykonać skrypt bez wpisywania tego przyrostka w cmd.exe. Na przykład na moim komputerze z systemem Windows PATHEXT zawiera sufiks, .pl
a kiedy chcę wykonać skrypt Perla w cmd.exe, po prostu mogę pisać my-script
i jest on wykonywany. Jednak w celu realizacji tego samego skryptu w bashu, muszę napisać imię i nazwisko: my-script.pl
.
Ponieważ obecnie pracuję zarówno na systemie Windows, jak i na Uniksie, prawie zawsze wpadam w pułapkę zapomnienia o wpisaniu sufiksu przy ponownym wejściu na pole Unix.
shell
environment-variables
René Nyffenegger
źródło
źródło
.sh
preceedes.pl
,foo.sh
zostanie uruchomiony. stackoverflow.com/a/7839178/180275Odpowiedzi:
krótkie: nie
dłuższe: skrypty powłoki wymagają pełnej nazwy pliku, ale możesz zdefiniować aliasy dla swoich poleceń, aby odwoływały się do nich pod różnymi nazwami. Na przykład
źródło
Najprostszym rozwiązaniem jest po prostu nie używanie rozszerzeń do skryptów. Nie są one konieczne i służą jedynie do identyfikacji typu skryptu dla Ciebie, ale nie dla komputera. Podczas gdy Windows używa rozszerzeń do identyfikacji typu pliku, systemy * nix (z nielicznymi wyjątkami, takimi jak
gzip
) nie.Zauważ, że pliki binarne nie mają
.exe
rozszerzenia w * nix, są po prostu wywoływanefoo
, a niefoo.exe
. Więc jeśli chceszfoo.pl
być wykonywalny jakofoo
, po prostu zapisz plik jakfoo
na pierwszym miejscu.Alternatywnie, jeśli z jakiegoś powodu naprawdę potrzebujesz rozszerzeń, przejdź do katalogu, w którym zapisujesz swoje skrypty i uruchom to:
Spowoduje to iterację wszystkich plików z rozszerzeniami i dla każdego
foo.ext
z nich utworzy link o nazwie,foo
który wskazujefoo.ext
. Pamiętaj, że to się nie powiedzie, jeśli masz wiele skryptów o tej samej nazwie, ale z różnymi rozszerzeniami.źródło
Jeśli naprawdę chcesz to zrobić, istnieje sposób. Dodaj następujące na końcu
.bashrc
w swoim katalogu domowym i ustawPATHEXT
nazwy rozszerzeń z kropkami oddzielonymi:
. (Zmieniono, aby zawierały kropki odpowiadające zachowaniu systemu Windows). Używaj go na własne ryzyko.Pamiętaj również, że możesz użyć klawisza tab, aby uzupełnić nazwę polecenia, jeśli nie ma innego polecenia rozpoczynającego się od
my-script
.źródło