Poucas perguntas sobre a realização de comandos usando scripts bash

0

Eu preciso criar um arquivo de script bash, que depois do lançamento faz o seguinte.

1) Suponha que depois de lançar o script eu digite o texto 'abc'. Então o script deve gerar automaticamente comandos

cat text.txt
echo '123' > text.txt
echo 'abc' >>text.txt
echo '456' >>text.txt

2) Depois de fazer isso eu preciso executar alguns comandos (como compilar o programa, etc.).

Como criar o script bash que executa essas tarefas?

    
por John Taylor 24.05.2016 / 17:02

1 resposta

1

Se a parte superior e inferior forem fixas, pode ser algo como:

cat top.txt /dev/stdin bottom.txt > text.txt 
# with cat, - works the same as /dev/stdin

ou

{ 
  echo 123 #top.txt
  cat
  echo 456 #bottom.txt
} > text.txt 

seguido pelos seus comandos de compilação

cat top.txt /dev/stdin bottom.txt > text.txt
gcc whatever 

A primeira linha deve ser uma linha shebang especificando seu interpretador, a menos que você esteja OK com /bin/sh

 #!/bin/bash
 cat top.txt /dev/stdin bottom.txt > text.txt
 gcc whatever

Se você marcar o executável do script com chmod +x the_script , ./the_script será equivalente a /bin/bash ./the_script .

Se você quiser que o script interrompa um comando, inicie-o com set -e (ou crie a linha shebang ( #!/bin/bash -e ).

Editar:

cat espera um arquivo inteiro (até você digitar ctr-d - o final do marcador de arquivo). Se você quiser apenas uma linha, você pode ler -r alguma coisa; printf '% s \ n' "$ alguma coisa" ou head -n1 .

Você pode ler as páginas de ajuda dos comandos com man $command ou help $command .

    
por 24.05.2016 / 17:33