這是我的第一個bash腳本,用於將我的內容同步到服務器。我想通過要同步的文件夾作爲參數。但是,它不能按預期工作。如果條件錯誤,bash腳本
這是我的腳本(保存爲sync.sh):
echo "STARTING SYNCING... PLEASE WAIT!"
var="$1" ;
echo "parameter given is $var"
if [ "$var"=="main" ] || [ "$var"=="all" ] ; then
echo "*** syncing main ***" ;
rsync -Paz /home/chris/project/main/ [email protected]_host:webapps/project/main/
fi
if [ "$var"=="system" ] || [ "$var"=="all" ] ; then
echo "*** syncing system ***" ;
rsync -Paz /home/chris/project/system/ [email protected]_host:webapps/project/system/
fi
if [ "$var"=="templates" ] || [ "$var"=="all" ] ; then
echo "*** syncing templates ***" ;
rsync -Paz /home/chris/project/templates/ [email protected]_host:webapps/project/templates/
fi
這我的輸出:
[email protected] ~/project/ $ sh ./sync.sh templates
STARTING SYNCING... PLEASE WAIT!
parameter given is templates
*** syncing main ***
^Z
[5]+ Stopped sh ./sync.sh templates
雖然我給的 「模板」 作爲一個參數,它忽略它。爲什麼?
-1'[「$ var」==「main」|| 「$ var」==「all」]'不起作用。 – dogbane
'[「$ var」==「main」|| 「$ var」==「all」]'應該改爲'[「$ var」==「main」-o「$ var」==「all」]' – anishsane
或者它可以改爲使用雙括號即'[[「$ var」==「main」|| 「$ var」==「all」]]' – dogbane