저는 쉘 스크립팅과 솔라리스 운영 체제를 처음 접했습니다. 디스크 사용량을 모니터링하는 스크립트를 작성하고 싶습니다. 온라인에서 몇 가지 튜토리얼을 따라한 후 사용하기 시작했습니다. 첫 번째 단계로 명령의 출력을 변수에 할당하고 이를 에코해 보았습니다.
#!/bin/sh
CURRENT=$(df -h /ccviews1|sed -n '2p'|awk '{print $5 }'|sed 's/%//g')
echo $CURRENT
스크립트를 실행하면 다음 오류가 발생합니다.
./diskMonitor.sh: 3행의 구문 오류: "CURRENT=$" 예기치 않음
이 문제를 해결하도록 도와주세요. 그리고 우분투에서 쉘 스크립트를 작성하는 것이 솔라리스에서 작성하는 것과 동일한지 궁금합니다. 차이점이 있는 경우 어떻게 진행해야 하나요?
답변1
Solaris 10 이하를 사용하는 경우 다음 방법 중 하나로 스크립트를 조정해야 합니다.
이전 Bourne 쉘에 이식 가능:
CURRENT=`df -h /ccviews1|sed -n '2p'|awk '{print $5 }'|sed 's/%//g'`
echo $CURRENT
POSIX 쉘 사용
#!/usr/xpg4/bin/sh
PATH=$(getconf PATH):$PATH
CURRENT=$(df -h /ccviews1|sed -n '2p'|awk '{print $5 }'|sed 's/%//g')
echo $CURRENT
Solaris 주류 쉘을 사용하십시오( bash
여기에서도 작동함)
#!/bin/ksh
CURRENT=$(df -h /ccviews1|sed -n '2p'|nawk '{print $5 }'|sed 's/%//g')
echo $CURRENT