重新分配变量时,Shell脚本将无法正常运行

时间:2018-03-26 17:04:30

标签: linux shell

所以我有一个shell脚本来做一些懒惰的事情,如果目录没有为用户改变。它在下面。本质上,它应该是一个if语句,如果用户为目录输入“default”,它将把它们拉到文件的默认目录。但是,我在第16行得到command not found,这是重新分配的声明。

以下全部if声明:

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

我已经尝试过没有美元符号了......没事。这里发生了什么? shell的新手,之前找不到这个问题。

1 个答案:

答案 0 :(得分:1)

这是你应该如何为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