2011-06-02 49 views
1

我有一個腳本bash它使用HTK toolkit。 HTK工具使用的文件之一稱爲do,存在於名爲hmm_1/的目錄中。現在,當我需要從HTK工具包中調用特定的工具時,我這樣做:獲取bash忽略腳本中的bash關鍵字

some HTK command -H hmm_1/do -H hmm_1/<something else>等等。我只注意到gvim在上面的命令中突出顯示了do文件名,認爲它是一個關鍵字。但是,它是一個文件名。我的問題是:

  1. 將bash解釋爲關鍵字或bash知道更好(這只是一個gvim怪癖)。
  2. 我怎樣才能讓bash知道一些變量名,儘管無關緊要地像關鍵字那樣命名,而不是文件名呢?

注意:我現在無法更改文件的名稱。我將不得不通過大量步驟回溯。

我只是不知道如何說這個問題。幫助編輯問題是非常值得歡迎的。

回答

3

作爲路徑的一部分,關鍵字將被忽略。它們只會在命令開始時被解釋爲關鍵字。最好簡單地考慮gvim的強調是一個小小的煩惱,並忽略它。

1

除了使用命令爲顯式路徑(如歐內斯特提出,什麼將你的情況做)的一部分,你也可以使用command內建要搜索的是在$PATH可變某些目錄的命令,忽視別名,shell函數和Shell關鍵字:

$ echo '#!/bin/bash 
> echo Hello World!' > ~/bin/do 

$ chmod u+x ~/bin/do 

~/bin是在我的道路,因此這將正常工作:

$ do 
bash: Syntaxfehler beim unerwarteten Wort `do' 

沒有,因爲它是一個保留字。與command前綴它可以幫助:

$ ~/bin/do 
Hello World! 
+0

@Paulo:感謝

$ command do Hello World! 

由於使用的完整路徑呢!這就說得通了! – Sriram 2011-06-03 15:01:55