ubuntu 14.04 bash脚本权限错误将文件读入带有$()的变量

ubuntu 14.04 bash脚本权限错误将文件读入带有$()的变量,bash,shell,ubuntu-14.04,Bash,Shell,Ubuntu 14.04,我将一个bash脚本放在登录用户主目录下的一个目录中,该目录读取一个文件(也放在同一个用户主目录中,在相对于bash脚本的路径的较深位置),以保存一些变量,以便在脚本中进行进一步处理(此处为一般性简化): 使用从bash运行此文件时 . run-me.sh 脚本失败,出现以下错误: -bash: ./config/myfile.conf: Permission denied 对该文件的权限为: -rw-rw-r-- 我不确定问题出在哪里(我是一个失败的NoobLinux/ubuntu用户)

我将一个bash脚本放在登录用户主目录下的一个目录中,该目录读取一个文件(也放在同一个用户主目录中,在相对于bash脚本的路径的较深位置),以保存一些变量,以便在脚本中进行进一步处理(此处为一般性简化):

使用从bash运行此文件时

. run-me.sh
脚本失败,出现以下错误:

-bash: ./config/myfile.conf: Permission denied
对该文件的权限为: -rw-rw-r--

我不确定问题出在哪里(我是一个失败的NoobLinux/ubuntu用户)

希望能得到一些帮助

问候,

Henrik执行
命令,因此
命令必须是可执行的。试一试

$ chmod 775 config/myfile.conf
$ . run-me.sh
$(command)
执行
命令
,因此
命令
必须是可执行的。试一试

$ chmod 775 config/myfile.conf
$ . run-me.sh
$(命令)
实际上尝试执行内部的任何内容(即
命令

在此,文件本身必须是:

  • 可执行文件:它必须具有
    x
    权限(例如
    chmod 755 filename
  • 程序:内容应该是源代码或对象/二进制形式的代码
$(命令)
实际上尝试执行内部的任何内容(即
命令

在此,文件本身必须是:

  • 可执行文件:它必须具有
    x
    权限(例如
    chmod 755 filename
  • 程序:内容应该是源代码或对象/二进制形式的代码

使
/config/myfile.conf
可执行:

chmod u+x ./config/myfile.conf

另外,检查
/config/myfile.conf中的内容也是一个好主意。首先,对常规
conf
文件的读取权限通常就足够了。检查哪些内容符合您的要求并相应地设置权限,不要做任何不必要的事情。

使
/config/myfile.conf
可执行:

chmod u+x ./config/myfile.conf

另外,检查
/config/myfile.conf中的内容也是一个好主意。首先,对常规
conf
文件的读取权限通常就足够了。检查哪些内容符合您的要求并相应地设置权限,不要做任何不必要的事情。

要将文件读入变量,您需要
$(要将文件读入变量,您需要
$(比您快14秒)。-)@blm:True-.-,但我有一个更全面的解释^-^:PWell,从技术上讲,你的解释是不正确的,文件不必是脚本,它可以是编译后的可执行文件。另外,在一般情况下,
命令可以是函数、别名,可能还有其他一些东西。这很容易修复,所以我们称之为tie.:-)@土地管理局:在上下文中,想法是它必须是一个程序。但是是的,你是对的,它不需要是一个特定的脚本。它可以是源代码(例如脚本)或对象/二进制形式(内置命令等)的任何程序。我做了一些小的更新:)比你领先14秒。;-)@blm:True-.-,但我有一个更全面的解释^-^:PWell,从技术上讲,你的解释是不正确的,文件不必是脚本,它可以是编译后的可执行文件。另外,在一般情况下,
命令可以是函数、别名,也可能是其他一些东西。这很容易解决,所以我们称之为平局。:-)@土地管理局:在上下文中,想法是它必须是一个程序。但是是的,你是对的,它不需要是一个特定的脚本。它可以是源代码(例如脚本)或对象/二进制形式(内置命令等)的任何程序。我做了一些小的更新:)嗨,OhmegaStar,欢迎来到SO。请别忘了回来投票,接受对你最有帮助的答案。这对你、那些试图解决你的问题的人以及整个社区都有好处。这也是我们在这里说“谢谢”的方式。致以最良好的问候。嗨,雷,回答已被接受并加上标记。嗨,OhmegaStar,欢迎来到SO。请别忘了回来投票,接受对你最有帮助的答案。这对你、那些试图解决你的问题的人以及整个社区都有好处。这也是我们在这里说“谢谢”的方式。致以最良好的祝愿。嗨,雷,答案被接受并加了标记。嗨,曼努埃尔,谢谢你的回答,这帮助我解决了这个问题,我还发现
sEnv=$(cat./config/myfile.conf)
起了作用,尽管这似乎有些过分。嗨,曼努埃尔,谢谢你的回答,这帮助我解决了这个问题,我还发现
sEnv=$(cat./config/myfile.conf)
奏效了,尽管看起来有些过分。
. ./config/myfile.conf
#or alternatively
source ./config/myfile.conf