匹配正则表达式的脚本失败,特定版本的bash出现语法错误

时间:2017-07-20 00:44:31

标签: bash

我有一个匹配模式的脚本,如果匹配,我使用匹配附加到变量。

我的脚本适用于Bash v3.2.57,但在v4.3.30上失败。

有人能告诉我第二个if条件与这里的模式匹配有什么问题吗?

#!/bin/sh if [ -f .file-to-read ]; then while read p; do echo "yes" if [[ $p =~ "@user/"(.+)"@"[0-9]+"."[0-9]+"."[0-9]+ ]] then var="$var<@user/${BASH_REMATCH[1]}|$p>\\n" fi done < .file-to-read fi

错误消息是

Syntax error: "(" unexpected (expecting "then")

1 个答案:

答案 0 :(得分:0)

我想出了这个问题。问题是文件正在#!/bin/sh执行时应该是#!/bin/bash