2010-06-15 71 views
4

我有以下的bash代码,它被复制,并从“庆典食谱”(第1版)粘贴:为什么这个简单的bash代码给出语法错误?

#!/bin/bash 

VERBOSE=0; 
if [[ $1 =-v ]] 
then 
    VERBOSE=1; 
    shift; 
fi 

当我运行这个(bash中4.0.33),我得到以下语法错误:

./test.sh: line 4: conditional binary operator expected 
./test.sh: line 4: syntax error near `=-v' 
./test.sh: line 4: `if [[ $1 =-v ]]' 

这是否就像bash食谱中的印刷错误一样简单,还是存在版本不兼容或其他什么?最明显的修复是什么?我尝试过改变操作符的各种组合,但我对bash脚本不是很熟悉。

回答

11

Bash使用空格来标记脚本。行:

if [[ $1 =-v ]] 

应该是:

if [[ $1 = -v ]] 
+0

我可以发誓,我已经试过了,但显然不是。谢谢。 – 2010-06-15 14:18:26

相关问题