意外標記“

意外標記“

我正在編寫一個腳本來讀取變數 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 相同的腳本時,它正在工作並給出所需的結果。

相關內容