`语法错误:“(在bash中尝试将文件列表设置为数组变量时出现”意外“

时间:2015-12-13 20:41:30

标签: bash

也许我在这里真的很傻但我似乎无法弄清楚这一点:

#!/usr/bin/env bash
...
DELTAS=($(ls -p /foo/bar/ | grep -P '^\d+[^\.]+\.sh$'))
...

如果我以交互方式运行它,那很好,echo $DELTAS会返回:

1-foo.sh
2-bar.sh

但是,当在bash脚本中运行时,我会收到Syntax error: "(" unexpected;任何想法?

1 个答案:

答案 0 :(得分:0)

我猜你没有将#!/bin/bash放在脚本的顶部,因此它使用/bin/sh而不是/bin/bash运行。例如,这将在Ubuntu上以破折号而不是bash运行。

该语法是bash扩展名。