让bash忽略脚本中的bash关键字

时间:2011-06-02 11:59:22

标签: bash keyword

我在bash中有一个使用HTK toolkit的脚本。 HTK工具使用的其中一个文件称为do,并存在于名为hmm_1/的目录中。现在,当我需要从HTK工具包中调用特定工具时,我这样做:

some HTK command -H hmm_1/do -H hmm_1/<something else>等等。我刚刚注意到gvim在上面的命令中突出显示了do 文件名,认为它是一个关键字。但是,它是一个文件名。我的问题是:

  1. bash会将其解释为关键字,还是bash知道更好(这只是一个gvim怪癖)。
  2. 我怎样才能让bash“知道”一些变量名称,虽然无关紧要,但不是像关键字一样,而是文件名?
  3. 注意:我现在无法更改文件的名称。我将不得不回顾大量的步骤。

    我只是不知道该怎么说这个问题。欢迎编辑问题行的帮助。

2 个答案:

答案 0 :(得分:3)

作为路径的一部分,关键字将被忽略。它们只会在命令开头被解释为关键字。最好只考虑gvim突出显示是一个轻微的烦恼并忽略它。

答案 1 :(得分:1)

除了将命令用作显式路径的一部分(如Ernest建议,以及在您的情况下将做什么),您还可以使用command内置来搜索{中某些目录中的命令{1}}变量,忽略别名,shell函数和shell关键字:

$PATH

$ echo '#!/bin/bash > echo Hello World!' > ~/bin/do $ chmod u+x ~/bin/do 在我的道路上,因此通常会有效:

~/bin

它没有,因为它是一个保留字。用$ do bash: Syntaxfehler beim unerwarteten Wort `do' 作为前缀有助于:

command

使用完整路径:

$ command do
Hello World!