Linux Bash脚本错误0=1:未找到命令

Linux Bash脚本错误0=1:未找到命令,linux,bash,Linux,Bash,我只是从bash的一些脚本开始。 现在我得到了以下错误: 0=1:在第9行中找不到命令 Home*错误:第17行未找到命令 我想用我的脚本检查主目录和以后的一些其他目录是否存在并具有正确的权限 我已经用Google和Stack Overflow搜索过了,但没有找到答案。首先,变量和它们的赋值之间有太多的空格。这个错误我想我已经纠正了,但是仍然有其他错误我没有找到答案 感谢您的帮助,在这里您可以从脚本中看到我的代码: #!/bin/bash users=(Hans Peter Alfred G

我只是从bash的一些脚本开始。 现在我得到了以下错误:

  • 0=1:在第9行中找不到命令
  • Home*错误:第17行未找到命令
我想用我的脚本检查主目录和以后的一些其他目录是否存在并具有正确的权限

我已经用Google和Stack Overflow搜索过了,但没有找到答案。首先,变量和它们的赋值之间有太多的空格。这个错误我想我已经纠正了,但是仍然有其他错误我没有找到答案

感谢您的帮助,在这里您可以从脚本中看到我的代码:

#!/bin/bash
users=(Hans Peter Alfred Georg Stefan Albert Christine)
for user in ${users[@]};
do

   nutzerVerzeichnis="0"
   if [ -d "/home/${user}" ]
   then
           ${nutzerVerzeichnis}="1"
           echo $home_dir
   fi

   if [ "${nutzerVerzeichnis}" -eq "1" ]
   then
           "Home ${user} ok">>/root/skript/permission.log
   else
           "Home ${user} Error">>/root/skript/permission.log
   fi
done
exit 0
在这方面:

${nutzerVerzeichnis}="1"
您告诉它计算nutzerVerzeichnis的值,即0。因此,这与写作是一样的

0=1
如果您试图为它赋值,那么请将${}保留为this

nutzerVerzeichnis="1"
代码中还有一些其他错误。这是正确的代码

#!/bin/bash
users=(Hans Peter Alfred Georg Stefan Albert Christine)
for user in "${users[@]}";
do
    nutzerVerzeichnis="0"
    if [ -d "/home/${user}" ]
    then
            nutzerVerzeichnis="1"
            echo "$home_dir"
    fi

    if [ "${nutzerVerzeichnis}" -eq "1" ]
    then
            echo "Home ${user} ok" >> /root/skript/permission.log
    else
            echo "Home ${user} Error" >> /root/skript/permission.log
    fi
done
exit 0

${nutzerVerzeichnis}=“1”
->
nutzerVerzeichnis=“1”
在另一行上也缺少
echo
,您正在解除对左侧的引用。在分配值时不需要添加${}:
nutzerVerzeichnis=“1”
也请参见,(U&L.SE),(SO),(AskU),等等。非常感谢!现在它工作了,我知道以后我不需要{}来给变量赋值,不仅仅是赋值。只有在出现歧义时才需要大括号,例如
${l}1
,或者在数组上下文中。