Linux 壳牌脚本赢得';重新分配变量时无法正常运行

Linux 壳牌脚本赢得';重新分配变量时无法正常运行,linux,shell,Linux,Shell,因此,我有一个shell脚本,如果用户的目录没有改变,它可以做一些惰性的事情。在下面。本质上,它应该是一个if语句,如果用户为目录输入“default”,它将把它们拉到文件的默认目录。但是,我在第16行得到了一个命令未找到,这是重新分配语句 整个if语句如下: if [ $directory = "default" ]; then echo Enter your ldap: read $ldap $directory = "/usr/local/home/google/

因此,我有一个shell脚本,如果用户的目录没有改变,它可以做一些惰性的事情。在下面。本质上,它应该是一个if语句,如果用户为目录输入“default”,它将把它们拉到文件的默认目录。但是,我在第16行得到了一个
命令未找到
,这是重新分配语句

整个
if
语句如下:

if [ $directory = "default" ];
then 
    echo Enter your ldap:
    read $ldap
    $directory = "/usr/local/home/google/${ldap}/Downloads"
fi

我也试过不带美元符号做这件事……什么都没有。这是怎么回事?shell新手,以前也找不到这个问题。

这是您应该如何为shell中的变量赋值:

directory="/usr/local/home/google/${ldap}/Downloads"
  • 没有美元(
    $
    )符号
  • 等号(
    =
    )周围没有空格

此外,您应该将变量用双引号(
)括起来。这样,您就可以避免未定义变量的错误,以及带有空格的参数等


这给了我们:

if [ "$directory" = "default" ]
then
    echo "Enter your ldap:"
    read $ldap
    directory="/usr/local/home/google/${ldap}/Downloads"
fi

考虑清理第一个发现的问题,有两个单独的重复标记:一个是空白,另一个是前面的代码<代码> $/COD>。不知道空间对这个有影响-包括可读性的空间。谢谢!!“第三点,第三部分,关于“以前被问过并回答过多次”的问题。