2013-02-14 2 views
0

Я пытался добавить параметр в свой сценарий оболочки bash, который кто-то делает «-r» Я делаю push на git-сервер, но я получаю следующую ошибкуПочему я получаю эту ошибку в моем bash shell scipt

mirror.sh: line 8: conditional binary operator expected 
mirror.sh: line 8: syntax error near `-e' 
mirror.sh: line 8: `if [[ "$1" -e "-r" ]];then' 

ниже мой Баш скрипт:

#!/bin/bash 
cd /home/joe/Documents/sourcecode/mirror.git 
git svn rebase 

# 
# if option -r then push to master 
# 
if [[ "$1" -e "-r" ]];then 
    git push origin master 
fi 

ответ

0

насчет:

if [[ "$1" == "-r" ]]; then 

?

-е в вашем примере проверяет, существует ли файл. что неправильно.

1

Try:

или

if [[ "$1" == "-r" ]];then

+0

теперь работает без «-r» :( – techsjs2013

+0

-eq является aritmetic сравнения между целыми числами, насколько я знаю. –

+0

@ LuigiR.Viggiano вы правы, отредактированы мой код – ogzd

0

Как указано -e действительно является file existence test. Я думаю, вы хотели сравнить значения и подумали об использовании -eq, но это arithmetic binary operator. Вам нужно == для сравнения строк, как

if [[ "$1" == "-r" ]]; 
Смежные вопросы