Shell脚本 - 权限被拒绝

时间:2012-08-02 19:23:44

标签: shell

我正在尝试一个非常小的脚本

#!/bin/sh

test="$(/home/dell/case3.3/private.key)"

echo $test

我将此文件称为test1.sh

我尝试访问名为private.key的文件 以下是文件private.key的权限集 -rw-rw-r--

以下是文件test1.sh的权限集 -rwxrwxrwx

我也试过

chmod u+x test1.sh

chmod 755 test1.sh

在我的痛苦中,我也尝试过 chmod 777 test1.sh

我相信777应该像它一样给予它所有权限..

我不明白问题是什么,为什么会有permission denied

我充当super user

3 个答案:

答案 0 :(得分:2)

/home/dell/case3.3/private.key不是脚本,也不是可执行文件。 $(/home/dell/case3.3/private.key)尝试执行该文件。目前还不清楚你要做什么,但也许你想要的是:

test="$(cat /home/dell/case3.3/private.key)"
echo "$test"

编辑以回应OP的评论

您无需将整个文件保存到变量中,只需显示其内容即可。相反,使用:

cat /home/dell/case3.3/private.key

但是,如果您 想要保存文件的某些部分,请使用sedgrep或{{1 }}。例如

awk

或者,您可以逐行处理文件:

test="$(grep 'somethingInTheFile' /home/dell/case3.3/private.key)"
echo "$test"

答案 1 :(得分:1)

test="$(/home/dell/case3.3/private.key)"

执行文件/home/dell/case3.3/private.key,然后将其分配给变量$ test。由于/home/dell/case3.3/private.key没有设置可执行位,因此您将收到权限被拒绝的消息。

例如在我的linux系统上:

david@david-Mate ~ $ touch xxx
david@david-Mate ~ $ ls -l xxx
-rw-r--r-- 1 david david 0 Aug  2 12:42 xxx
david@david-Mate ~ $ test="$(./xxx)"
bash: ./xxx: Permission denied

答案 2 :(得分:0)

尝试使用sudo运行它:

sudo test1.sh

那可能有用......