我是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