私は最初のバックアップスクリプトを作成しようとしているBashスクリプトが初めてです。 )(、私は["var"="1"]||["var"=2]
、二重括弧のように、多くの異なる構文を試してみました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
、引用符なしのシングルとダブル-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
編集:ここで示唆されている正しい構文は、ありがとうございました!私はまだバッシュに良いガイドを探しています:)
'[': '[$ choice" == "1" ...]などのようにスペースを入れてください。 – fedorqui
if文の修正に加えて、間違ったディレクトリにあるアクションが発生する可能性があるので、 'cd /'に注意する必要があります。 – Zlemini
人的支援を依頼する前にhttp://shellcheck.net/を試してください。 – tripleee