/ / awk:予期しないトークンの近くの構文エラー `( ' - bash、awk

awk:予期しないトークンの近くの構文エラー `( ' - bash、awk

私は、 awk コマンドを変数に追加する:

USERS=$(awk "//X/ {print $1}" <(w))

この行は次のスクリプトの一部です:

#!/bin/sh

INTERFACE=$1 # The interface which is brought up or down
STATUS=$2 # The new state of the interface

case "$STATUS" in
up) # $INTERFACE is up

if pidof dropbox; then
killall dropbox
fi

USERS=$(awk "//X/ {print $1}" <(w))

for user in $USERS; do
su -c "DISPLAY=$(awk "//X/ {print $11}" <(w)) dropboxd &" $user
done
;;
down) # $INTERFACE is down
;;
esac

しかし、私は次のエラーが発生します:

script: command substitution: line 14: syntax error near unexpected token `("
script: command substitution: line 14: `awk "//X/ {print $1}" <(w))"

すべての角括弧は閉じています。構文エラーはどこですか?

回答:

回答№1は6

あなたが使用しているので私は仮定しています #!/bin/sh そうではない #!/bin/bash そのプロセス置換は利用できません (または、あなたがプロセスのサブプロジェクトをサポートしていないバージョンのbashを持っている、pre 4.X.X)。切り替える bash または単にパイプ w あなたの awk コマンド:

USERS=$(w | awk "//X/ {print $1}")