/ / Pierwsze bash, aby zignorować słowa kluczowe bash w skrypcie - bash, słowo kluczowe

Pierwsze bash, aby zignorować słowa kluczowe bash w skrypcie - bash, słowo kluczowe

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:

  1. Czy bash zinterpretuje to jako słowo kluczowe lub bash wie lepiej (to tylko dziwactwo gvima).
  2. 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 № 1

W 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ć gvimpodkreś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!