Erro ao tentar atribuir saída de um comando para shell variável no SunOS

0

Eu sou novo nos sistemas operacionais shell script e solaris. Eu quero escrever um script que monitore o uso do disco. Depois de alguns tutoriais on-line eu comecei com isso. Como primeiro passo, tentei atribuir a saída de um comando a uma variável e fazer o eco dela.

#!/bin/sh

CURRENT=$(df -h /ccviews1|sed -n '2p'|awk '{print $5 }'|sed 's/%//g')
echo $CURRENT

Quando eu executo o script, ele está dando erro abaixo

./diskMonitor.sh: syntax error at line 3: 'CURRENT=$' unexpected

Por favor me ajude com esse problema. Além disso, eu gostaria de escrever scripts shell no Ubuntu e escrever no Solaris são os mesmos. Se houver alguma diferença, como devo proceder?

    
por Vishnu Rudrasamudram 18.08.2016 / 09:13

1 resposta

1

Se você estiver usando o Solaris 10 e mais antigo, precisará ajustar o script de uma destas maneiras:

Portátil para o shell Bourne legado:

CURRENT='df -h /ccviews1|sed -n '2p'|awk '{print $5 }'|sed 's/%//g''
echo $CURRENT

Use um shell POSIX

#!/usr/xpg4/bin/sh
PATH=$(getconf PATH):$PATH
CURRENT=$(df -h /ccviews1|sed -n '2p'|awk '{print $5 }'|sed 's/%//g')
echo $CURRENT

Use o shell principal do Solaris ( bash também funcionará aqui)

#!/bin/ksh

CURRENT=$(df -h /ccviews1|sed -n '2p'|nawk '{print $5 }'|sed 's/%//g')
echo $CURRENT
    
por 18.08.2016 / 09:38