t\ime或者\cd(或"tim"e或'cd'或${-##*}time或${-+time}和报价,你可以想到的扩张最终会解析到的所有其他组合time或cd)是:另一种方式来写cd和time。
但是,这最终将解决cd或time在以后的shell语法解析和解释时解决。特别是,这在发生外壳关键字识别和别名替换之后很久就发生了。
因此,在外壳程序以其语言查找关键字时,它并没有被识别ti\me为time外壳程序关键字。因此:
ti\me echo test
Shell会将其识别为简单命令,而不是time关键字后跟简单命令。
然后在报价ti\me会(这里反斜杠被引用的处理m,并不需要引用反正引用角色被删除,你会得到字符time)和time 命令将查到的像任何其他命令(在内建命令列表,中的函数和可执行文件$PATH。最有可能在/bin/time此处)
对于cd,cdshell语言中没有关键字,只有cd内置命令(优先于your /usr/bin/cd)。但是,如果您确实定义了别名cd(如alias cd=pushd),请再次指定。由于别名替换是在替换引号之前很早完成的,如果您有一个别名cd而不是一个别名\cd(请注意,没有太多的shell允许在别名中使用反斜杠),则可以这样写:
\cd dir
您要确保cd别名没有被替换。
总之,引用了命令名或任何部分防止它被看作是一个外壳关键字(关键字是东西喜欢while,for,if,{... time是一个关键字一些只弹),并绕过你可能有它的别名。
但是,它不会强制该命令解析为中的可执行文件$PATH,该命令仍会首先在函数(可以通过执行此操作来解决command time cmd...)和内建函数(可以通过执行来解决env time cmd...,尽管我不知道)中进行搜索。具有内置time命令的外壳)。
请注意,报价也可以对特殊内建的行为的影响typeset/ declare/ export/ local...家庭在一些贝壳。请参见局部变量赋值是否需要引号?有关详细信息。