Como executar vários comandos um após o outro com um pedido para o terminal (sem usar um arquivo)?

14

Eu poderia (1) preparar um arquivo com comandos digitados separados por linha de chegada, (2) torná-lo executável, (3) executá-lo de um gerenciador de sistema de arquivos ou do terminal.

Mas isso é ridículo para conjuntos de comandos não repetíveis e sempre diferentes.

Posso digitar esses comandos no terminal em uma solicitação?

Eu não sei o caractere de fim de linha para o terminal - Ctrl, Shift ou Alt com Enter não funciona.

    
por Esamo 01.02.2014 / 03:49

3 respostas

15

Você pode separar os comandos com && ou ; .

  • && só executa o próximo comando se o anterior sair com status 0 (teve êxito):

    command1 && command2 && command3
    
  • ; executa todos os comandos, mesmo que o anterior saia com um status diferente de zero:

    command1; command2; command3
    

Você pode combinar esses separadores como desejar.

    
por MrVaykadji 01.02.2014 / 03:55
8

Se você estiver interessado em digitar cada comando em sua própria linha em uma única solicitação, poderá usar o seguinte método:

  • Inicie sua solicitação (primeira linha) com if :; then (isto significa: se verdadeiro, então faça) e pressione Enter ; seu prompt mudará agora em > e nada será executado.

  • Digite seus comandos, cada um seguido por Enter

  • Conclua sua solicitação com fi (final da condição if acima) e pressione Enter . Agora todos os seus comandos serão executados na ordem dada.

Exemplo:

radu@Radu: ~ $ if :; then
> echo 'something'
> echo 'something else'
> echo 'List current directory contents:'
> ls
> echo 'Change current directory with root directory:'
> cd
> #finish
> fi
something
something else
List current directory contents:
Backups            Desktop           forma3d  Public      Untitled txt.txt~
bin                Documente         Music    Templates   Videos
configuration.php  examples.desktop  passwd~  tmp~
Downloads          file~             Poze     Ubuntu One
Change current directory with root directory:
radu@Radu: / $
    
por Radu Rădeanu 01.02.2014 / 08:11
4

Primeiro, coloque um { em sua própria linha.
Em seguida, insira seus comandos.
Em seguida, coloque um } em uma nova linha e pressione Enter . Seus comandos serão executados.

Exemplo:

{
echo list
echo of
echo commands
echo to run at once
}

que será impresso (de uma só vez, sem prompt entre):

list
of
commands
to run at once

Como nota lateral, { .. } é a sintaxe de agrupamento de comandos Bash. Geralmente é útil em conjunto com && ou || ('e' e 'ou' respectivamente)

    
por kiri 01.02.2014 / 11:34