Unix 启动脚本时出错:执行shell脚本时没有此类文件或目录
我刚刚遇到了与上描述的相同的问题 用户提问:“我在执行shell脚本时没有得到这样的文件或目录。但是我在相应的路径中有相应的文件。它也有可执行的权限。” 回答:“您的脚本是以/directory/scriptname还是/scriptname开头的?” 当我使用“/scriptname”启动脚本时,这就起到了作用。我在多台服务器上启动了这个脚本,在一些机器上我可以只使用“scriptname”,在其他机器上我需要使用“../scriptname”为什么有些机器上需要“../”而在其他机器上不需要“../”呢?在所有计算机上,文件权限都相同。如果当前目录(Unix 启动脚本时出错:执行shell脚本时没有此类文件或目录,unix,Unix,我刚刚遇到了与上描述的相同的问题 用户提问:“我在执行shell脚本时没有得到这样的文件或目录。但是我在相应的路径中有相应的文件。它也有可执行的权限。” 回答:“您的脚本是以/directory/scriptname还是/scriptname开头的?” 当我使用“/scriptname”启动脚本时,这就起到了作用。我在多台服务器上启动了这个脚本,在一些机器上我可以只使用“scriptname”,在其他机器上我需要使用“../scriptname”为什么有些机器上需要“../”而在其他机器上不需要
)位于路径中,则可以通过两种方式运行脚本:
script.sh # Shell will look for the script.sh in
# every directory listed in $PATH
./script.sh # Shell will invoke the script.sh located
# in the current directory.
如果当前目录不在路径中
,则必须按如下方式运行:
./script.sh
这是因为shell不知道在哪里可以找到这个脚本-它的父文件夹不在路径中。使用/
调用它会告诉shell在哪里可以找到它
要将当前目录添加到路径
,请发出以下命令:
$ export PATH=$PATH:.
列表是冒号删除的,上面的co表示“新路径将与旧路径相同,添加当前目录(
)”
编辑:注意@Cyrille注释-将
放在路径中可能不是一个好主意(出于安全原因)。将
放在$PATH
()中也是一种不好的做法。但是,您可以将脚本放在定义的目录中,并将此目录添加到$PATH