Bat*_*yar 3 scripts execute-command
我想知道为什么有些 Ubuntu 服务器不同。
我有两个运行 Web 应用程序的 Ubuntu 12.04 服务器。今天我试图从它的文件夹中运行一个 sh 文件。服务器 1 可以在没有 ./ 的情况下运行 shell,但服务器 2 需要它。两者都有 777 权限。
通常当前文件夹中的脚本/程序不会在 linux/unix 上执行。
脚本/程序仅在可以在$PATH变量中找到脚本/程序时执行。
因此,当路径未包含在$PATH变量中时,您必须提供脚本/程序的路径才能运行它。要在当前文件夹中执行脚本/程序,您必须在它前面加上它./表示当前文件夹。
请检查$PATH两台服务器上的变量是否相同。
根据您对$PATH变量的评论,我怀疑其中一个脚本位于$PATH变量找到的文件夹中,而另一个位于另一个文件夹中。
注意力
这是一个坏主意,包括./在你的$PATH。通过这种方式,用户可以创建恶意命令(例如ls)并引导您进入他保存该命令的文件夹。然后你将执行本地版本而不是系统命令(如果当前文件夹放在$PATH之前/bin)。