openKylin论坛

 找回密码

执行脚本和可执行程序时一直提示没有权限(Permission denied) [复制链接]

kwz@kwz:~/test$ ls
test.sh
kwz@kwz:~/test$ ll
总用量 12
drwxrwxr-x  2 kwz kwz 4096 2月  18 21:24 ./
drwxr-xr-x 39 kwz kwz 4096 2月  18 21:23 ../
-rwxrwxr-x  1 kwz kwz   33 2月  18 21:24 test.sh*
kwz@kwz:~/test$ . ./test.sh
hello kylin os!
kwz@kwz:~/test$

11#
发表于 2020-2-18 21:24:54
回复

使用道具 举报

执行脚本和可执行程序时一直提示没有权限(Permission denied) [复制链接]

chmod a+x 脚本文件
12#
发表于 2020-2-18 22:51:13 来自手机
回复

使用道具 举报

执行脚本和可执行程序时一直提示没有权限(Permission denied) [复制链接]

kaiwazi 发表于 2020-2-18 21:24
kwz@kwz:~/test$ ls
test.sh
kwz@kwz:~/test$ ll

嗯。这样是可以的。我也验证过。只是有点好奇 . 操作符可以这样执行脚本。我看了下,用 . 操作符,底层好像也是用bash来执行的脚本,但为什么我直接用 bash 来执行test.sh脚本却不行呢?
13#
 楼主| 发表于 2020-2-19 09:16:50
回复

使用道具 举报

执行脚本和可执行程序时一直提示没有权限(Permission denied) [复制链接]

lanzinc 发表于 2020-2-18 22:51
chmod a+x 脚本文件

我已经将脚本文件的权限打开了,已经给到777了。还是不行的
14#
 楼主| 发表于 2020-2-19 09:17:56
回复

使用道具 举报

执行脚本和可执行程序时一直提示没有权限(Permission denied) [复制链接]

wanjie 发表于 2020-2-18 20:56
我试过了。bash和sh我都试过了。一样的不行。。。。

由于你的贴图我无法看清楚,你是放在哪里,然后怎么执行的,判断大概你的执行路径不对,我发解析,
你直接复制我的代码,在桌面编辑后,放到系统的{bin}文件夹里,然后打开终端直接运行就可以,
不用./这样来运行直接输入名称回车,
15#
发表于 2020-2-19 10:10:31
回复

使用道具 举报

执行脚本和可执行程序时一直提示没有权限(Permission denied) [复制链接]

笨鸟弟弟 发表于 2020-2-19 10:10
由于你的贴图我无法看清楚,你是放在哪里,然后怎么执行的,判断大概你的执行路径不对,我发解析,
你直 ...

这张图片是我的测试脚本的内容、所在位置,以及我所做的测试。我没有把测试脚本放到/bin文件夹下。因为在实际的使用中,我们不会把所有的脚本都放在/bin目录下。我们一般都会自己指定脚本文件的存放路径的。

微信图片_20200219110725.png (53.04 KB, 下载次数: 20)

微信图片_20200219110725.png
16#
 楼主| 发表于 2020-2-19 11:14:51
回复

使用道具 举报

执行脚本和可执行程序时一直提示没有权限(Permission denied) [复制链接]

看了你的终端输出,原来是你的执行不对,
你应该这样执行
pwd #确认你所在的位置
然后cd 进入你文件所在的位置

./t.sh  #告诉在当前位置执行文件解析 # 无论是root权限用户还是权限都应该我这样,除了你把它扔进 /bin目录下,
而不是你那样来执行文件,你根本不明白自己在做什么?你更不明白linnux文件目录结构,

17#
发表于 2020-2-19 18:13:46
回复

使用道具 举报

执行脚本和可执行程序时一直提示没有权限(Permission denied) [复制链接]

笨鸟弟弟 发表于 2020-2-19 18:13
看了你的终端输出,原来是你的执行不对,
你应该这样执行
pwd #确认你所在的位置

说实话哈,我是真的不是太了解linux的文件目录结构。我之前的所有操作都是在我的脚本和可执行文件所在目录下操作的。不是太理解为什么还需要再来cd 到文件所在的位置???这是什么原因啊?
我刚刚又试了一下,操作了一下cd,但是再操作的时候,还是会报之前的错误。我的操作有什么问题吗?我执行脚本的时候,一般会这么操作。
一、进入脚本所在的目录,然后直接使用命令:bash 脚本
二、在做任意的目录,然后使用命令:bash 脚本所在的完整路径(从根目录到脚本,如我写的测试脚本 /home/guest/temp/t.sh)
请问一下,我这些操作与linux的文件目录结构有什么关联啊?一直不是太了解底层的东西。望不吝赐教。谢谢,谢谢!万分感谢!

微信图片_20200220090310.png (44.66 KB, 下载次数: 16)

微信图片_20200220090310.png
18#
 楼主| 发表于 2020-2-20 09:23:48
回复

使用道具 举报

执行脚本和可执行程序时一直提示没有权限(Permission denied) [复制链接]

笨鸟弟弟 发表于 2020-2-19 18:13
看了你的终端输出,原来是你的执行不对,
你应该这样执行
pwd #确认你所在的位置

抱歉,还是没能明白你说的。我对linux的文件目录结构是真的不是太了解。还望能不吝赐教下。我试着将我的测试脚本放到了/bin目录下,但是测试的时候,还是一样的。

微信图片_20200220091411.png (34.62 KB, 下载次数: 17)

微信图片_20200220091411.png
19#
 楼主| 发表于 2020-2-20 13:50:35
回复

使用道具 举报

执行脚本和可执行程序时一直提示没有权限(Permission denied) [复制链接]

笨鸟弟弟 发表于 2020-2-19 18:13
看了你的终端输出,原来是你的执行不对,
你应该这样执行
pwd #确认你所在的位置

说实话哈,我是真的不是太了解linux的文件目录结构。我之前的所有操作都是在我的脚本和可执行文件所在目录上去执行的。然后,我执行的时候,一般会有两种方式:
一、进入到脚本所在的目录,然后直接使用bash或sh,后面再加上脚本名。如: bash t.sh
二、使用bash或sh,后面会加上脚本的完整路径。如: bash /home/guest/temp/t.sh
一直以来我都是只会使用,不是太了解底层的东西。不好意思!能请你解释一下底层的逻辑吗?
另外,我刚刚也尝试了下,通过cd进入到文件所在的位置,但是执行出来的结果还是一样的。不知道是为什么?是我的操作有什么问题吗?



而我通过 . 操作符来操作的时候,发现脚本通过 . 操作符是可以正常显示的,但是可执行文件却是不行的。这个是什么原因啊?你能帮忙解释下吗?

微信图片_20200220141153.png (26.17 KB, 下载次数: 17)

微信图片_20200220141153.png

微信图片_20200220090310.png (44.66 KB, 下载次数: 20)

微信图片_20200220090310.png
20#
 楼主| 发表于 2020-2-20 14:13:03
回复

使用道具 举报

openKylin

GMT+8, 2024-5-8 00:18 , Processed in 0.044093 second(s), 18 queries , Gzip On.

Copyright ©2022 openKylin. All Rights Reserved .

ICP No. 15002470-12 Tianjin

快速回复 返回顶部 返回列表