![SunOS에서 명령 출력을 쉘 변수에 할당하는 중 오류가 발생했습니다.](https://linux55.com/image/92662/SunOS%EC%97%90%EC%84%9C%20%EB%AA%85%EB%A0%B9%20%EC%B6%9C%EB%A0%A5%EC%9D%84%20%EC%89%98%20%EB%B3%80%EC%88%98%EC%97%90%20%ED%95%A0%EB%8B%B9%ED%95%98%EB%8A%94%20%EC%A4%91%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
저는 쉘 스크립팅과 솔라리스 운영 체제를 처음 접했습니다. 디스크 사용량을 모니터링하는 스크립트를 작성하고 싶습니다. 온라인에서 몇 가지 튜토리얼을 따라한 후 사용하기 시작했습니다. 첫 번째 단계로 명령의 출력을 변수에 할당하고 이를 에코해 보았습니다.
#!/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