我正在尝试一个非常小的脚本
#!/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
答案 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
但是,如果您 想要保存文件的某些部分,请使用sed
,grep
或{{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
那可能有用......