Comprar este Shell Script Tutorial de como um PDF por apenas r $5 Para o nosso primeiro shell script, vamos escrever um script que diz:”Olá Mundo”. Vamos, em seguida, tentar obter mais de um Olá Worldprogram do que qualquer outro tutorial que você já leu 🙂
Criar um ficheiro (first.sh) como segue: first.sh
#!/bin/sh# This is a comment!echo Hello World # This is a comment, too!
A primeira linha informa ao Unix que o ficheiro está a ser executado por /bin/sh.Este é o local padrão da concha Bourne em quase todo o sistema everyUnix. Se você está usando GNU / Linux, /bin / sh é normalmente um link simbólico para bash (ou, mais recentemente, dash).
a segunda linha começa com um símbolo especial: #
. Isto marca a linha como um comentário, e é completamente ignorado pela shell.
A única exceção é quando a primeira linha dos filestarts com #!
– como o nosso faz. Esta é uma diretriz especial que o Unix trata especialmente. Isso significa que mesmo que você esteja usando csh, ksh, ou qualquer outra coisa como seu shell interativo, o que segue deve ser interpretado pela shell Bourne.
Similarly, a Perl script may start with the line #!/usr/bin/perl
to tell your interactive shell that the program which follows should be executed by perl. Para Bourne shell de programação, iremos nos ater a #!/bin/sh.
A terceira linha executa um comando: echo
, com dois parâmetros, orarguments – o primeiro é "Hello"
; o segundo é "World"
.
Note que irá automaticamente colocar um único espaço entre os seus parâmetros.
O símbolo#
ainda marca um comentário; o # e qualquer coisa a seguir é ignorado pela shell.
execute agora chmod 755 first.sh
para tornar o ficheiro de texto executável,e execute ./first.sh
.
sua tela deve então ficar assim:
$ chmod 755 first.sh
$ ./first.sh
Hello World
$
você provavelmente terá esperado isso! Você poderia até mesmo executar:
$ echo Hello World
Hello World
$
Agora vamos fazer algumas alterações.
First, note that puts ONE space between its parameters. Coloque alguns espaços entre” Olá “e”Mundo”. O que você espera que a saída seja? E que tal colocar uma personagem TAB entre eles?como sempre com a programação shell, tente e veja.
a saída é exatamente a mesma! Estamos chamando o programa com dois argumentos; ele não se importa mais do que cp
faz sobre as lacunas entre eles.Agora modifique o código novamente:
#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!
desta vez ele funciona. Você provavelmente também esperava isso, se você tem experiência de outras linguagens de programação. Mas a chave para entender o que é goingon com comando mais complexo e script shell, é entender e ser capaz de explicar: por quê?
agora foi chamado com apenas um argumento-a cadeia”Hello World”. Imprime isto exactamente.
O ponto a entender aqui é que a shell analisa os argumentos antes de passar themon para o programa que está sendo chamado. Neste caso, ele tira as citações, mas passa a cadeia como um argumento.
como exemplo final, digite o seguinte script. Tente prever o resultado antes de o executar:
first2.sh
#!/bin/sh
# This is a comment!
echo "Hello World" # This is a comment, too!
echo "Hello World"
echo "Hello * World"
echo Hello * World
echo Hello World
echo "Hello" World
echo Hello " " World
echo "Hello "*" World"
echo `hello` world
echo 'hello' world
está tudo como esperava? Se não, não te preocupes! Estas são apenas algumas das coisas que vamos cobrir neste tutorial … and yes, we willbe using more powerful commands than !
de Volta: Filosofia Seguinte: as Variáveis (Parte 1)