Como colar um código no terminal e executá-lo linha por linha? (tem sudo)

1

Como exemplo:

Quando colo no terminal o seguinte código:

wclean;
sudo bash;
wmake;

Ele pede senha para sudo bash , então eu tenho que digitar ( não há problema ). Mas isso não continua. Ele para antes de wmake .

Então

Como colar um código inteiro personalizado no terminal e executá-lo linha por linha? Eu quero uma solução simples porque esses códigos que eu colo são de internet, livros, tutoriais, ...

    
por Vitor Abella 29.07.2016 / 08:12

6 respostas

4

Colocar vários comandos de uma só vez pode causar problemas se um deles aguardar a entrada do terminal. Nesse caso, o restante da pasta será usado como entrada para esse comando e não como um comando separado para ser executado posteriormente. O exemplo mais comum é provavelmente o prompt da senha sudo .

No entanto, o Bash é capaz de abrir um editor de texto para inserir comandos, por padrão é nano . Você inicia o editor de comandos pressionando Ctrl + X seguido por Ctrl + E . O editor é iniciado e tudo o que você digitou na linha de comando atual também aparecerá e poderá ser editado. Se a linha de comando estava vazia, o editor também estará vazio.

No editor agora você pode facilmente colar ou digitar vários comandos, basta colocar um comando por linha e o Bash irá executá-los um por um. Você também pode colocar um script inteiro lá, não importa. O conteúdo que você escreve é salvo internamente como arquivo temporário e executado quase como um script Bash. A única diferença aqui é que, se você tiver vários comandos, o Bash primeiro imprimirá o comando antes de executá-lo.

Se você terminar de editar e quiser enviar sua lista de comandos, simplesmente saia do editor ( Ctrl + X para nano ). Ele perguntará se você deseja salvar as alterações e responder " Y es" e pressionar Enter para aceitar o nome do arquivo temporário proposto. Bash então começará a executar todos os comandos um após o outro.

    
por Byte Commander 29.07.2016 / 10:13
2

No seu caso, a resposta é mudar os comandos que você está usando. Você está tentando iniciar um shell bash como root para executar um comando. A maneira limpa de fazer isso é apenas executar sudo command . Então, tudo que você precisa é copiar e colar o seguinte diretamente no seu terminal:

wclean
sudo wmake

Não é necessário executar primeiro sudo bash e então wmake , executar wmake com sudo diretamente. Você também não precisa do ; no final de cada comando. O ; é necessário apenas se você estiver executando dois comandos na mesma linha (por exemplo, comm1; comm2 ).

    
por terdon 29.07.2016 / 11:26
0

Se você entrar como superusuário, todo o comando que você executar receberá privilégios de superusuário, portanto, nenhuma senha será solicitada.

Basta digitar sudo su no terminal antes de colar seus comandos. O prompt deve ter sido alterado de $ para #.

    
por kek 29.07.2016 / 08:51
0

Simples, copie e cole em um arquivo e execute o arquivo, Por exemplo:

nano test.sh
Ctrl+Shift+V [to paste the code]
Ctrl+O [Save it]
Ctrl+X [Exit]
chmod 755 test.sh
./test.sh

Felicidades

    
por hellozee 29.07.2016 / 08:51
0

Como @jiipeezz comentou, não há nada errado em não continuar após sudo bash , porque com este comando você abre um novo shell. De fato, ao finalizar o shell (com exit ), o próximo comando é executado. Se você quer executar o comando wmake como superusuário, então você tem que passar o comando como argumento para shell, com sudo bash -c 'wmake' . Experimente:

wclean;
sudo bash -c 'wmake';

Mas não acho que faça sentido executar um único comando em um novo shell, em vez disso, ele usa o sudo para executar o comando diretamente.

    
por girardengo 29.07.2016 / 10:43
-1

Você pode alterar os pontos-e-vírgulas (;) com '& amp; & amp;' sem as aspas, no seu caso, por exemplo:

wclean &&
sudo bash &&
wmake 

BTW no '& amp; & amp;' no fim.

Tenha um bom dia

    
por Pejo30 29.07.2016 / 08:58