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))'
모든 괄호가 닫혀 있습니다. 구문 오류는 어디에 있습니까?
나는 당신이 사용 #!/bin/sh
하고 있고 #!/bin/bash
프로세스 대체를 사용할 수 없기 때문에 가정 하고 있습니다 (또는 4.XX 이전의 프로세스 하위를 지원하지 않는 bash 버전이 있습니다) . 명령으로 전환 bash
하거나 파이프 w
로 연결하십시오 awk
.
USERS=$(w | awk '/\/X/ {print $1}')
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다