|
From: | maik alberto |
Subject: | Re: [shell-script] Shell Script com CGI [Projeto Cloud] |
Date: | Sun, 16 Jul 2017 03:24:43 +0000 |
Excelente explicação,
só pra constar como ficou a parte mencionada no script
list(){ python -c ' import base64 import commands path = commands.getoutput("echo $HOME") f = open(path+"/.shellmox/.moxcfg", "r") name = f.readline().replace("\n", "") host = f.readline().replace("\n", "") user = f.readline().replace("\n", "")+"@pam" pas1 = f.readline().replace("\n", "") pas2 = base64.b64decode(pas1).replace("\n", "") from proxmoxer import ProxmoxAPI; proxmox = ProxmoxAPI(host, user=user, password=pas2, verify_ssl=False) for vm in proxmox.cluster.resources.get(type="vm"): print("{0}. {1} => {2}" .format(vm["vmid"], vm["name"], vm["status"])) f.close() ' } Curiosidade: Nesse script de inicio escrevi para ser interpretado pelo /bin/bash, resolvi alterar para ser interpretado para /bin/sh, quando resolvi gerar uma imagem o mais compacta possível para o Docker, tive que fazer algumas alterações.
Comentadas no script(#RMsh): "read -sp" não funcionou array abaixo substituí, não rolou function list() substiuído por list() De: address@hidden <address@hidden> em nome de 'Julio C. Neves' address@hidden [shell-script] <address@hidden>
Enviado: sábado, 15 de julho de 2017 18:06 Para: address@hidden Assunto: Re: [shell-script] Shell Script com CGI [Projeto Cloud] Maik, suponha que eu esteja dentro de um script shell e não conheça nem o cmd echo, nem o printf, mas sei que em python o cmd print manda o dado para a tela, então veja essa facilidade do Shell,
que vc já deve conhecer, mas nem sempre é empregada na sua potencialidade máxima:
$ Num=5
$ Nome=Maik
$ /usr/bin/python << fim
> print $Num
> print $Nome
> fim
5
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'Maik' is not defined
Ele imprimiu $Num, mas deu erro em $Nome, isso pq vc está chamando o interpretador python porém está em um ambiente Shell, ou seja a variável que interpreta é o Shell, que passa o literal Maik para
o print do Python, mas o Python só entende literais que estào dentro de aspas (sem aspas ele imagina que seja um número ou uma variável) vamos então listar esta variável entre aspas:
$ /usr/bin/python << fim
print $Num
print "$Nome"
fim
5
Maik
Agora funcionou. Dei essa volta toda, só para mostrar para a nossa lista que qq interpretador (inclusive os *SQL* da vida) pode ser usado nativamente
dentro de um script, inclusive partilhando seus dados.
Volto a dizer: nunca pergunte se dá para fazer em Shell. A pergunta correta é: qual é a melhor maneira de se fazer em Shell. ;)
No dia 19/07 farei um hangout somente sobre Shell que começará as
20:00h até mais ou menos as 21:00h ou até acabarem as perguntas.
Isto é, só acabará quando se encerrarem as dúvidas.
Inscreva-se em: https://app.webinarjam.net/register/37942/66d16b7d7c
Abcs,
Julio
Damos treinamento em sua empresa por um
preço,
no mínimo, 50% mais barato que qualquer curso,
com certificado e nota fiscal.
Nosso time de instrutores in company é formado somente por
autores
de Best Sellers
laureados
sobre os temas. P. exemplo:
Shell básico e Programação em Shell
Julio Neves Em 15 de julho de 2017 12:54, maik alberto
address@hidden [shell-script] <address@hidden> escreveu:
|
[Prev in Thread] | Current Thread | [Next in Thread] |