意外标记“<”附近的语法错误

Sud*_*ash 9 bash shell-script process-substitution

我正在编写一个脚本来读取变量 a 和 b 的命令输出。这是脚本

#!/bin/bash

read a b < <(awk '/Application Server/ && !seen[$7]++{printf "%s ", $7}' /tmp/ServerState)

echo "The value of a is $a"
echo "The value of b is $b"
Run Code Online (Sandbox Code Playgroud)

并得到语法错误:

line 3: syntax error near unexpected token `<'
line 3: `read a b < <(awk /Application Server/ && !seen[$7]++{echo "%s ", $7} /tmp/ServerState)'
Run Code Online (Sandbox Code Playgroud)

但是当我在控制台中输入相同的命令时,它对我来说没有任何问题。

app@user:/tmp> read a b < <(awk '/Application Server/ && !seen[$7]++{printf "%s ", $7}' /tmp/ServerState)
app@user:/tmp> echo $a
FAILED
app@user:/tmp> echo $b
STARTED
Run Code Online (Sandbox Code Playgroud)

对此的任何帮助都非常感谢。

Cos*_*tas 15

sh(在大多数(Debian 派生的)系统中链接到dash)不允许进程替换。尝试通过 调用bash script.sh。通过./script.sh执行相同的调用与sha-bang/bin/bash在脚本中。