将filename作为命令

时间:2015-11-09 17:27:59

标签: bash shell

我有一个有shell命令的文件 例如:test

我需要将其作为

运行
#test

而不是#./test

任何人都请帮忙!

1 个答案:

答案 0 :(得分:2)

其中没有/的命令将作为

进行尝试
  • shell builtins
  • 功能
  • 别名
  • $ PATH
  • 的每个组件中的可执行文件

PATH是一个环境变量,它包含以冒号分隔的路径列表,其中shell或某些exec系统函数搜索可执行文件。

PATH=$PWD:$PATH 

预先安装当前目录,使测试可执行文件可运行。 (正如hek2mgl提到的那样,出于安全原因,附加通常要好得多,因为您通常不希望用户可写路径覆盖已经成为PATH一部分的写保护路径 - 尽管您确实需要它这种情况,因为test已经是系统级可执行文件了

然而,仍然会在test shell内置之前。 因此,您应该将其命名为test以外的其他内容,或者在修改PATH后使用$(which test)来绕过内置函数。

在shell中,您还可以将其作为调用完整路径的函数(或别名)。这不会产生很多不良安全隐患。

注意:    $PWD是当前目录的绝对路径。您还可以使用.(或其他相对路径),使PATH"更改"和cd一样,但出于安全原因,这被认为是一种不好的做法。