私は、 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}")