我正在使用Linux Mint 17.1 Rebecca 64位。
我有一个名为test.pl的简单Perl脚本:
margin: auto
权限为#!/usr/bin/perl
print "Hello\n" ;
我的PATH变量是:-rwxr-xr-x
当这个脚本在我的用户bin目录/ home / myLogin / bin中时,我可以通过简单的方式在bin目录之外启动它:
/mnt/USERS/user1/:/home/myLogin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
命令:
test.pl
返回
which test.pl
这似乎没问题。
在我的Linux上,我安装了位于本地网络某处的共享Windows硬盘。 如果我将此脚本移动到/ mnt / USERS / user1 /上的Windows挂载硬盘驱动器,即使/ mnt / USERS / user1 /位于$ PATH变量中,我也无法再运行它。 系统回答“未找到命令”。 如果我使用cd命令转到此目录,我无法通过简单的启动脚本:
/home/myLogin/bin/test.pl
错误是“找不到命令”。
如果我尝试:
test.pl
错误现在是“权限被拒绝”
如果我尝试:
./test.pl
它完美地工作...... 怎么了 ??? 感谢名单
答案 0 :(得分:1)
错误是"命令未找到"。
当您键入没有明确路径的命令时(与./test.pl
不同),您的shell将搜索$PATH
中列出的目录。这通常不包括./
(当前目录),因此它找不到脚本。
错误现在是"权限被拒绝"
当您尝试直接执行脚本时(而不是执行perl
并将脚本的位置作为参数传递,文件权限必须允许执行。
Windows文件权限与UNIX文件权限不同,在类UNIX系统上安装的Windows格式化磁盘通常具有硬编码(在mount命令中)文件权限。这些不包括您要执行的文件的执行权限。