Inscrições abertas: Workshop gratuito sobre Programação Shell Linux

1. Inscrições abertas: Workshop gratuito sobre Programação Shell Linux

Rubens Queiroz de Almeida
rubens.queiroz

(usa Ubuntu)

Enviado em 24/03/2020 - 22:11h

A Dicas-L em parceria com o Professor Julio Cezar Neves, preparou um workshop gratuito em vídeo sobre programação Shell Linux. Serão quatro aulas, conforme o cronograma abaixo:

Aula 1: A Filosofia do Linux
Segunda-feira, 30 de março de 2020, 20h
Aula 2: A Programação Shell Linux
Quarta-feira, 01 de abril de 2020, 20h
Aula 3: Da Terra ao Shell
Quinta-feira, 02 de abril de 2020, 20h
Aula 4: Como Aprender Shell Linux
Sexta-feira, 03 de abril de 2020, 20
Para se inscrever no workshop e garantir sua vaga, visite https://educacao.dicas-l.com.br/workshop

Ficaremos muito honrados com sua presença!

Um abraço,

Rubens Queiroz e Júlio Neves






  


2. Re: Inscrições abertas: Workshop gratuito sobre Programação Shell Linux

Rogerio
RogerDez

(usa Outra)

Enviado em 26/03/2020 - 09:57h

O Professor Julio Cezar Neves é muito bom..
Ele diz que dá para fazer tudo, TUDO em shell..


3. Obrigado!

Rubens Queiroz de Almeida
rubens.queiroz

(usa Ubuntu)

Enviado em 26/03/2020 - 11:11h

Valeu Roger, obrigado pelo apoio!
Um grande abraço!
Rubens


4. Re: Inscrições abertas: Workshop gratuito sobre Programação Shell Linux

Cézar Augusto
cezargaiteiro

(usa Debian)

Enviado em 26/03/2020 - 19:13h


RogerDez escreveu:

O Professor Julio Cezar Neves é muito bom..
Ele diz que dá para fazer tudo, TUDO em shell..

Ainda mais agora que o bash suporta array associativo...


________________________________________________
O programador tem a mania de achar que tudo é objeto


5. Re: Inscrições abertas: Workshop gratuito sobre Programação Shell Linux

Rogerio
RogerDez

(usa Outra)

Enviado em 26/03/2020 - 19:38h

mais ou menos o bash suporta array associativo..
vamos ser claros, aquilo não é array de verdade.
é uma pena que os pseudo-arrays do bash começam a contar do 0..
e não tem como exportar um array do bash..
são todas funcionalidades que o bash tenta implementar copiando do ksh.
o Korn já deu as dicas, só falta o pessoal do Bash implementar tudo para as shells terem maior compatibilidade..
quem sabe um dia



6. Re: Inscrições abertas: Workshop gratuito sobre Programação Shell Linux

Rogerio
RogerDez

(usa Outra)

Enviado em 29/03/2020 - 18:34h

tem dois links de uns textos antigos de hacks para sistemas UNIX.
lembrando que hack nada mais é do que dar um jeito para utilizar algo de forma esperta.
eu não sei se a história do UNIX desses textos está 100% correta ou bem explicada, mas tem muita coisa legal.
são em inglês mas eles explicam bem como funciona a shell, a ferramenta que afinal torna os sistemas UNIX tão poderosos..

unix hacks
http://www.iwar.org.uk/hackers/resources/digital%20rebels/articles/unixtips.txt
http://www.lib.ru/SECURITY/hackalot.txt



7. Algum engano...

Julio Neves
juliobash

(usa Outra)

Enviado em 30/03/2020 - 09:42h

Concordo que o Bash não use arrays na acepção pura da palavra, mas o korn shell também não usa... O que ambos possuem é uma estrutura de vetores...
E qual a diferença? Arrays (matrizes) são multidimensionais e vetores (vectors) são mono dimensionais. Mas os vetores costumam ser tratado como uma matriz monodimensional e por isso a confusão.
Amigo @RogerDez, depois vc disse: "é uma pena que os pseudo-arrays do bash começam a contar do 0." , eu não acho que seja uma pena, acho isso excelente e explico porque: Como a sintaxe ${Vetor[Ind]} é exatamente a mesma da sintaxe de Expansão de Parâmetros que são os intrínsecos (builtins) mais velozes que existem e é essa semelhança que nos permite mesclar o uso de ambas em uma única construção, no mesmo código e com tempo de resposta mínimo. Exemplos:
${#Var} # Devolve o tamanho de Var
${#Vetor[@]} # Devolve o tamanho de Vetor (qtos elementos)

${Var:2:3} # Devolve 3 caracteres de Var a partir da posição 2 (origem zero)
${Vetor[@]:2:3} # Devolve três elementos de vetor a partir do elemento 2 (origem zero)

${Var:3} # Devolve do caractere 3 (origem zero) até o fim de Var
${Vetor[@]:3} # Devolve a partir do elemento 3 (origem zero) até o fim de Vetor

E por aí vai...

Para finalizar, vc disse: "são todas funcionalidades que o bash tenta implementar copiando do ksh.
o Korn já deu as dicas, só falta o pessoal do Bash implementar tudo para as shells terem maior compatibilidade..
quem sabe um dia"
O que me deixa a penser em reestudar tudo que conheço de ksh (com o qual trabalhei uns 20 anos) pq pela sua afirmação ele deve ter melhorado muito. Por favor me tire umas dúvidas:
Qdo eu usava o ksh para criar o vetor Frutas eu precisava fazer:
Frutas[0]=Pera
Frutas[1]=Uva.
...
Eu já posso criar o vetor da mesma maneira simplificada do bash:
Frutas=(Pera Uva)?

Para acrescentar mais uma fruta no vetor, não preciso me preocupar com o índice da última, basta fazer:
Frutas+=Maçã
Eu já posso fazer o mesmo em ksh?

ksh já tem vetores associativos?

Se vc responder afirmativamente a pelo menos uma dessas questões, vou ficar muito surpreso, pois o desenvolvimento do ksh estava semi estacionado há muito tempo...

Qdo passei a usar o bash, desenvolvi um jogo da velha para testar a compatibilidade no tratamento de vetores de ambos. Quem quiser se divertir, basta me solicitar para educaçã[email protected] que eu envio na boa.

SUSHELLSO!!! ;D



8. Re: Inscrições abertas: Workshop gratuito sobre Programação Shell Linux

Rogerio
RogerDez

(usa Outra)

Enviado em 30/03/2020 - 10:44h

Dr juliobash,
não sou especialista em nada, mas eu pago muito pau pro ksh93..
Afinal, Korn Rocks!
http://kornshell.com/fun/

o zsh tem uma opção de simulação do ksh93:
[email protected]% ARGV0=ksh exec zsh
$
$ Frutas=(Pera Uva)
$ print ${Frutas[0]}
Pera
$ print ${Frutas[1]}
Uva
$ Frutas+=(Maçã)
$ print ${Frutas[2]}
Maçã
$ Frutas+=Laranja
$ print ${Frutas[3]}

$ print ${Frutas[*]}
PeraLaranja Uva Maçã
$

Eu acho que a versão do ksh93 já tem essas funcionalidades que o senhor questionou.

Nem o Bash aceita Frutas+=Maçã para adicionar esse como último elemento de um array como o senhor perguntou!
Pode conferir
no Bash:
[~]$ Frutas=(Pera Uva)
[~]$ Frutas+=Maça
[~]$ echo ${Frutas[*]}
PeraMaça Uva


Aqui a lista de sugestões do Korn para o Bash:
I [Korn] have not looked at bash for several years and some of the features I describe here might now be implemented by bash. I sent Chet Ramey, author of bash, the list of new features in ksh93 years ago so that if these features get implemented in bash, they would be compatible. Here is a partial list of ksh93 features:

Associative arrays - ksh88 already supports indexed arrays.
Floating point arithmetic + math library functions.
Arithmetic for command similar to C and awk.
Complete ANSI C printf formatting with extensions.
Run time linking of libraries and builtins.
A number of additional substring operations such as offset length.
Full extended regular expression matching capabilities
Compound variables which can be used to represent data aggregates.
Name references for passing aggregate variables by name.
Active variables. Users can trap variable assignment and references by associating intercept functions of the form name.get and name.set.
Ability to make socket connections to servers by name.
read with timeouts.
Conformance to POSIX 1003.2.
Command completion and variable completion, ksh93 only had file name completion.
A key binding mechanism that allows users to bind keys to new editing functions.

https://slashdot.org/story/01/02/06/2030205/david-korn-tells-all
Algumas dessas sugestões de compatibilidade já foram implementadas pelo Bash..

A respeito dos números de índices do Bash..
O Bash é uma das únicas shells que começam o índice com '0', por que copiou do Ksh.
As outras, exemplo Bourne, csh, tcsh, fish, rc, es, yash, começam do 1.

As outras ferramentas da shell também começam a contar do 1. Já pensou fazer um 'head -n 0' para puxar a primeira linha de um arquivo??
Além disso, se o índice começasse do 1 e houvesse somente um elemento no array, tanto [1] quanto [-1] seriam equivalentes..
Se vc tem quatro elementos no array, os índices deveriam ir intuitivamente de 1-4 e não de 0-3..
Além disso, no Bash, o '[0]' serve para puxar a fonte da função ou do script, por exemplo.. E depois começa a contar array com '0' também??
Causa muita confusão começar do '0' em um array, mas é claro depois que se acostuma, é fácil contar do '0', assim como os Romanos antigos.
http://exple.tive.org/blarg/2013/10/22/citation-needed/
https://unix.stackexchange.com/questions/252368/is-there-a-reason-why-the-first-element-of-a-zsh-arr...

Ainda bem que este problema foi resolvido no Z-shell!

Mas esses comentários são para provocar os Bash fan-boys e haver uma discussão, e aprendermos mais..

O meu avatar é o Mago, ou o Monstro, do Z-shell



9. Re: Inscrições abertas: Workshop gratuito sobre Programação Shell Linux

Rogerio
RogerDez

(usa Outra)

Enviado em 07/04/2020 - 01:14h

o Bash não tem nenhum mascote como o Z-Shell
e nem as fotos do KORN having fun com os estudantes de computação

o MacOSBOsta agora resolveu usar o zsh..

o Brian Fox, coitado, Mago
teve que renunciar todo o código dele
em favor de todos nós






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts