无法从bash脚本

时间:2015-04-25 14:23:53

标签: bash

我正在尝试运行命令

chown -R "$USER" /mnt/namenode 
从bash脚本

更改namenode文件夹及其子文件夹的所有权。当我手动输入命令时

sudo chown -R ubuntu /mnt/namenode 

它有效,但不是我从脚本中做到的。从脚本中,只有namenode的所有权发生变化,而不是其子文件夹。有谁知道我怎么解决这个问题?

好的,我明白了。我的脚本在设置所有权后格式化namenode。在格式之前,子文件夹具有递归的正确所有权。格式化后,子文件夹的所有权将更改为root。所以我做了以下改变:

echo 'Y' | /home/$USER/hadoop-2.2.0/bin/hadoop namenode -format
sudo chown -R $USER:$USER /mnt/namenode
sudo chown -R $USER:$USER /mnt/datanode

换句话说,我在完成格式化后设置了所有权。

3 个答案:

答案 0 :(得分:0)

试试这个:

chown -R $USER:$USER /mnt/namenode

答案 1 :(得分:0)

如果您使用sudo运行脚本(正如您所做的那样),则脚本$USER内的root将不是普通用户。 因此,请在脚本中使用sudo

sudo chown -R "$USER" /mnt/namenode 

并运行不带sudo的脚本。

答案 2 :(得分:0)

我遇到同样的问题。

尝试在文件夹末尾添加斜杠:

chown -R "$USER" /mnt/namenode/