我是Bash脚本的新手,试图制作我的第一个备份脚本。当我运行它,我总是得到这样的:Bash脚本无法识别布尔逻辑,“命令未找到”
./backupscript.sh: line 9: [3=1: command not found
./backupscript.sh: line 9: 3=2]: command not found
./backupscript.sh: line 15: [3=1: command not found
./backupscript.sh: line 15: 3=3]: command not found
我已经尝试了许多不同的语法,像["var"="1"]||["var"=2]
,双括号,不带引号,()-brackets单,双和我失去了我的脑海里。似乎bash根本不承认它是一个if语句。怎么了?谢谢!
#!/bin/bash
cd/
NOW=$(date +"%m_%d_%Y")
echo "Please input: 1=full 2=system 3=home"
read choice
if ["$choice"="1" || "$choice"="2"]; then
echo "--- STARTING SYSTEMBACKUP ---"
tar -cvpzf systembackup_$NOW.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/systembackup.tar.gz --exclude=/mnt --exclude=/sys --exclude=/dev --exclude=/run --exclude=/media --exclude=/home/
echo "--- SYSTEM BACKUP DONE ---"
fi
if ["$choice"="1" || "$choice"="3"]; then
echo "--- STARTING HOMEBACKUP (excluding ~/Seafile) ---"
tar -cvpzf homebackup_$NOW.tar.gz --exclude=/home/matias/Seafile /home
echo "--- HOMEBACKUP DONE ---"
fi
编辑:正确的语法建议在这里做的伎俩,谢谢大家!我还在寻找巴蜀好导游:)
在'[':'if [“$选择”==“1”...“等等附近加上空格。 – fedorqui
在修复if语句的同时,您应该小心使用'cd /',因为它可能会导致在错误的目录中发生操作 – Zlemini
尝试http://shellcheck.net/请求人类帮助之前。 – tripleee