也许我在这里真的很傻但我似乎无法弄清楚这一点:
#!/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
;任何想法?
答案 0 :(得分:0)
我猜你没有将#!/bin/bash
放在脚本的顶部,因此它使用/bin/sh
而不是/bin/bash
运行。例如,这将在Ubuntu上以破折号而不是bash运行。
该语法是bash扩展名。