Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 基本Bash备份脚本_Linux_Bash_Shell - Fatal编程技术网

Linux 基本Bash备份脚本

Linux 基本Bash备份脚本,linux,bash,shell,Linux,Bash,Shell,我还在学习如何在bash中编程,为了练习,我正在尝试做一个“备份脚本”(引用,因为我知道这不是一个正确的备份),下面是代码: #|/bin/bash sudo mkdir /home/lucas/bkp echo "Type the path for the directory you want do save" read directory if [-d $directory]; then sudo cp -R $directory /home/lucas/bkp/ else

我还在学习如何在bash中编程,为了练习,我正在尝试做一个“备份脚本”(引用,因为我知道这不是一个正确的备份),下面是代码:

#|/bin/bash

sudo mkdir /home/lucas/bkp
echo "Type the path for the directory you want do save"
read directory

if  [-d $directory]; then
    sudo cp -R $directory /home/lucas/bkp/

else 
    echo "Path not found"

fi
但是我得到一个错误,说保存在变量上的路径不存在,并且直接在shell上“手动”执行相同的命令,一切正常。以下是错误:

lucas@lucas-Linux:~$ sudo sh ./ex.sh 
Type the path for the directory you want do save
/home/lucas/git/
./ex.sh: 7: ./ex.sh: [-d: not found
Path not found

您需要在您的条件中放置空格,如下所示:

if [ -d $directory ]; then

您在
[
之后缺少空格,正确的是
[-d$directory]
。非常感谢您,为这个愚蠢的错误感到抱歉。哈哈。不过无论如何,很高兴了解到这一点。再次感谢