누군가 내 삼바 서버에서 데이터를 스트리밍하는지 (즉 음악이 재생 중인지 아닌지)를 인식하는 스크립트를 작성하고 싶습니다. 이를 위해,이 같은 스크립트를 마련했습니다bash에서 변수를 표준 출력으로 인쇄하지 않고
$ cat /home/ron/scripts/keepup.sh
#!/bin/bash
exec=`nethogs -t -c 1| awk '/smbd/ {print $2}'`
sent=$exec
echo "result: "$sent
sent="($sent+0.5)/1" | bc
echo "rounded: "$sent
if [[ $sent -gt 0 ]]
then
echo "music is playing"
else
echo "quiet"
fi
하지만 난 얻을 :
Waiting for first packet to arrive (see sourceforge.net bug 1019381)
result: 6.73438
rounded: 6.73438
/home/ron/scripts/keepup.sh: line 10: [[: 6.73438: syntax error: invalid arithmetic operator (error token is ".73438")
quiet
는 분명 결과는 true "6.73438"를 계산해야하지만. 내 반올림이 제대로 작동하지 않는 것 같습니다. 내가 주위에 봤 거든하지만 에코 또는 printf를 사용하여 답변을 찾았지만 그것은 둥근 결과를 IF 조건으로 먹이로 원하는대로 npt이야.