在执行文件的过程中,使用./命令无法正确执行,并显示权限不够的情况。
解决方法:
1.可以使用. vspm的命令来运行,可以比较一下两种运行方式的区别。
. program
或 source program
:这个命令会在当前的shell环境中执行program
文件中的命令。这通常用于执行脚本文件,比如 shell 脚本,目的是为了在当前的shell环境中改变变量或者定义函数等。这种方式不会创建新的进程,而是直接在当前的shell进程中执行命令。
./program
:这个命令尝试执行当前目录下名为program
的可执行文件。这意味着program
需要是一个编译好的二进制可执行文件或者是一个通过#!
行指定了解释器的脚本文件,比如#!/bin/bash
。此外,program
必须具有执行权限。
2.第二种方法可以从根本上解决问题,显示权限不够,实际上是可执行文件的权限存在问题。
1.检查文件权限:首先,你需要检查vspm
文件的当前权限。你可以使用ls -l
命令来查看:
ls -l vspm
例如我所显示的是-rw-rw-r--
,vspm
文件当前对所有者(usr)和所在组具有读写权限(rw-
),但没有执行权限(x
),而对其他用户仅有读权限(r--
)。这解释了为什么你在尝试执行./vspm
时会遇到“权限不够”的错误。
2.修改文件权限:要解决这个问题,需要给vspm
文件添加执行权限。这可以通过以下命令实现:
可以使用chmod
命令来给文件所有者添加执行权限:
chmod u+x vspm
如果希望所有用户都能执行这个文件,可以使用:
chmod +x vspm
修改后重新执行文件,./vspm a-inst.txt命令可以正确执行文件。