Mam skrypt w bash
który używa HTK toolkit
. Używany jest jeden z plików używanych przez narzędzie HTK do
i jest obecny w katalogu o nazwie hmm_1/
. Teraz, kiedy muszę wywołać konkretne narzędzie z zestawu narzędzi HTK, robię to tak:
some HTK command -H hmm_1/do -H hmm_1/<something else>
i tak dalej. Właśnie to zauważyłem gvim
podkreśla do
Nazwa pliku w powyższym poleceniu, myśląc, że jest to słowo kluczowe. Jest to jednak nazwa pliku. Moje pytanie brzmi:
- Czy bash zinterpretuje to jako słowo kluczowe lub bash wie lepiej (to tylko dziwactwo gvima).
- Jak mogę przekonać bash, aby "wiedział", że niektóre nazwy zmiennych, choć niewinnie nazwane jak słowa kluczowe, nie są tym samym i czy są to nazwy plików?
Uwaga: Nie mogę teraz zmienić nazwy pliku. Będę musiał wycofać się z wielu kroków.
Po prostu nie wiem jak sformułować to pytanie. Pomoc w edycji wiersza pytania jest bardzo mile widziana.
Odpowiedzi:
3 dla odpowiedzi № 1W ramach ścieżki słowa kluczowe będą ignorowane. Będą one interpretowane jako słowo kluczowe tylko na początku polecenia. Najlepiej byłoby po prostu rozważyć gvim
podkreślanie jest lekkim rozdrażnieniem i ignorowanie go.
1 dla odpowiedzi nr 2
Inne niż użycie polecenia jako części jawnej ścieżki (jak zaproponował Ernest i co zrobisz w twoim przypadku), możesz także użyć command
wbudowane w polecenia wyszukiwania, które znajdują się w jakimś katalogu w $PATH
zmienna, ignorowanie aliasów, funkcji powłoki i słów kluczowych powłoki:
$ echo "#!/bin/bash
> echo Hello World!" > ~/bin/do
$ chmod u+x ~/bin/do
~/bin
jest na mojej drodze, a więc normalnie by to działało:
$ do
bash: Syntaxfehler beim unerwarteten Wort `do"
Nie, ponieważ jest słowem zastrzeżonym. Prefixowanie za pomocą command
pomaga:
$ command do
Hello World!
Podobnie jak przy użyciu pełnej ścieżki:
$ ~/bin/do
Hello World!