这是我的第一个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