2

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

#!/bin/sh

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

echo $test

我称这个文件test1.sh

我尝试访问一个名为private.key Here is the permission set for the fileprivate.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

4

3 回答 3

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

但是,如果您确实想保存文件的某些部分,请使用sedgrepawk. 例如

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

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

while read line; do
  echo $line
done < /home/dell/case3.3/private.key
于 2012-08-02T19:33:05.723 回答
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
于 2012-08-02T19:43:51.970 回答
0

尝试像这样使用 sudo 运行它:

sudo test1.sh

那可能行得通...

于 2012-08-02T19:27:19.147 回答