意外标记“

意外标记“

我正在编写一个脚本来读取变量 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"

并得到语法错误为:

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

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

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

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

答案1

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

答案2

我试图将脚本调用为 sh file.sh 并收到错误。但是当我调用与 ./file.sh 和 bash file.sh 相同的脚本时,它正在工作并给出所需的结果。

相关内容