0

我一直在尝试向我的 bash shell 脚本添加一个选项,即有人执行“-r”我推送到 git 服务器但我收到以下错误

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'

下面是我的 bash 脚本:

#!/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
4

3 回答 3

1

尝试:

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

或者

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

于 2013-02-14T12:53:14.030 回答
0

关于什么:

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

?

-e 在您的示例中测试文件是否存在。这是错误的。

于 2013-02-14T12:57:19.663 回答
0

如前所述-e,确实是文件存在测试。我猜您想比较值并考虑使用-eq但那是算术二元运算符。您需要==将字符串比较为

if [[ "$1" == "-r" ]];
于 2013-02-14T13:06:36.977 回答