我正在编写一个脚本来读取变量 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 相同的脚本时,它正在工作并给出所需的结果。