Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

Resumindo

Com a adição de parâmetros posicionais, agora podemos escrever scripts bastante funcionais. Para tarefas simples e repetitivas, os parâmetros posicionais tornam possível escrever funções de shell muito úteis que podem ser colocadas em um usuário .bashrc arquivo.

Nossa sys_info_page programa cresceu em complexidade e sofisticação. Aqui está uma lista completa, com as alterações mais recentes destacadas:



#! / Bin / bash


# sys_info_page: programa para gerar uma página de informações do sistema


PROGNAME = $ (nome de base $ 0)

TITLE = "Relatório de informações do sistema para $ HOSTNAME" CURRENT_TIME = $ (data + "% x% r% Z")

TIMESTAMP = "Gerado $ CURRENT_TIME, por $ USER"


report_uptime () {cat << - _EOF_

Tempo de atividade do sistema

$ (tempo de atividade)

_EOF_ retorno

#! / Bin / bash


# sys_info_page: programa para gerar uma página de informações do sistema


PROGNAME = $ (nome de base $ 0)

TITLE = "Relatório de informações do sistema para $ HOSTNAME" CURRENT_TIME = $ (data + "% x% r% Z")

TIMESTAMP = "Gerado $ CURRENT_TIME, por $ USER"


report_uptime () {cat << - _EOF_

Tempo de atividade do sistema

$ (tempo de atividade)

_EOF_ retorno


}


report_disk_space () {cat << - _EOF_

Utilização de espaço em disco

$ (df -h)

_EOF_ retorno

}


report_home_space () {

if [[$ (id -u) -eq 0]]; então gato << - _EOF_

Utilização do espaço doméstico (todos os usuários)

$ (du -sh / home / *)

_EOF_

outro

gato << - _EOF_

Utilização do espaço doméstico ($ USER)

$ (du -sh $ HOME)

_EOF_

fi voltar

}


uso () {

echo "$ PROGNAME: uso: $ PROGNAME [-f arquivo | -i]" return

}


write_html_page () {cat << - _EOF_

$ TITLE

$ TITLE

$ TIMESTAMP

$ (report_uptime)

$ (report_disk_space)

$ (report_home_space)

_EOF_ retorno

}


# opções de linha de comando do processo

}


report_disk_space () {cat << - _EOF_

Utilização de espaço em disco

$ (df -h)

_EOF_ retorno

}


report_home_space () {

if [[$ (id -u) -eq 0]]; então gato << - _EOF_

Utilização do espaço doméstico (todos os usuários)

$ (du -sh / home / *)

_EOF_

outro

gato << - _EOF_

Utilização do espaço doméstico ($ USER)

$ (du -sh $ HOME)

_EOF_

fi voltar

}


uso () {

echo "$ PROGNAME: uso: $ PROGNAME [-f arquivo | -i]" return

}


write_html_page () {cat << - _EOF_

$ TITLE

$ TITLE

$ TIMESTAMP

$ (report_uptime)

$ (report_disk_space)

$ (report_home_space)

_EOF_ retorno

}


# opções de linha de comando do processo

Resumindo


interativo =

nome do arquivo =


enquanto [[-n $ 1]]; caso $ 1 em

-f | --Arquivo)

mudança

nome do arquivo = $ 1

;;

interativo =

nome do arquivo =


enquanto [[-n $ 1]]; caso $ 1 em

-f | --Arquivo)


-i | --interactive) interativo = 1

;;

-h | --help) saída de uso

;;

*) uso> & 2

sair 1

;;

turno esac

feito


# modo interativo


if [[-n $ interativo]]; então, embora seja verdade; Faz

ler -p "Digite o nome do arquivo de saída:" nome do arquivo if [[-e $ nome do arquivo]]; então

read -p "'$ filename' existe. Substituir? [y / n / q]>" case $ REPLY em

Y | y) pausa

;;

Q | q) echo "Programa encerrado." saída

;;

*) Prosseguir

;;

esac

elif [[-z $ filename]]; então continue

outro

quebrar

fi

feito

fi


# saída da página html


if [[-n $ filename]]; então

se tocar em $ filename && [[-f $ filename]]; então write_html_page> $ filename

outro

-i | --interactive) interativo = 1

;;

-h | --help) saída de uso

;;

*) uso> & 2

sair 1

;;

turno esac

feito


# modo interativo


if [[-n $ interativo]]; então, embora seja verdade; Faz

ler -p "Digite o nome do arquivo de saída:" nome do arquivo if [[-e $ nome do arquivo]]; então

read -p "'$ filename' existe. Substituir? [y / n / q]>" case $ REPLY em

Y | y) pausa

;;

Q | q) echo "Programa encerrado." saída

;;

*) Prosseguir

;;

esac

elif [[-z $ filename]]; então continue

outro

quebrar

fi

feito

fi


# saída da página html


if [[-n $ filename]]; então

se tocar em $ filename && [[-f $ filename]]; então write_html_page> $ filename

outro


echo "$ PROGNAME: Não é possível gravar o arquivo '$ filename'"> & 2 exit 1

fi mais

write_html_page

fi

echo "$ PROGNAME: Não é possível gravar o arquivo '$ filename'"> & 2 exit 1

fi mais

write_html_page

fi


Ainda não terminamos. Ainda há mais coisas que podemos fazer e melhorias que podemos fazer.


Top OS Cloud Computing na OnWorks: