为什么这个简单的bash代码会出现语法错误?

时间:2010-06-15 12:07:19

标签: bash syntax-error

我有以下bash代码,它是从“bash cookbook”(第1版)复制并粘贴的:

#!/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 cookbook中的印刷错误一样简单,或者是否存在版本不兼容或其他内容?最明显的解决方案是什么?我尝试过各种改变运算符的组合,但我并不熟悉bash脚本。

1 个答案:

答案 0 :(得分:11)

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

if [[ $1 =-v ]]

应该是:

if [[ $1 = -v ]]