Como gravar a entrada do usuário em um arquivo em um script de shell? [fechadas]

-1

Meu amigo estava me mostrando um programa em shell script onde ele fez onde iria abrir o programa, ele faria uma pergunta, ele digitaria uma resposta. Então fechava, mas o que ele digitasse, a resposta seria transferida para um documento de texto.

    
por TheWaffleNinja 06.09.2014 / 22:19

3 respostas

4

Eu sugeriria começar com algo como

#!/bin/bash

read -p "Your question here: "

echo "$REPLY" > somefile

Você pode ler mais sobre o comando read do bash a partir da página de manual ( man bash ) ou digitando help read no prompt do shell.

    
por steeldriver 07.09.2014 / 00:40
1

Se a resposta não precisar ser testada, basta fazer isso em apenas uma linha:

$ echo "Enter blah" && cat > output.txt
Enter blah
blah 
# Press Ctrl+D to stop recording stuff into file
$ cat output.txt
blah

O que acontece aqui é que usamos echo para produzir texto na tela. && simplesmente é operador booleano e significa "se o comando anterior foi bem sucedido, execute o segundo". && não é importante aqui e ; pode ser usado da mesma forma. cat > output.txt é a parte divertida - sem nenhum arquivo especificado, o cat lerá stdin stream por padrão (que neste caso é o seu teclado) e repassará para stdout . O que > faz é enviar stdout stream para o arquivo. Então, basicamente, voltamos a conectar os fluxos de dados de um teclado para outro, em vez de um teclado para a tela do terminal, em apenas alguns caracteres de texto.

Isso não precisa necessariamente ser feito apenas no shell, isso pode ser feito com outras ferramentas, como python :

$ python -c 'import sys;print("Say hello");f=open("output.txt","w");[f.write(l) for l in sys.stdin.readlines()];f.close()'       
Say hello
Hello AskUbuntu
# press Ctrl+D
$ cat output.txt
Hello AskUbuntu
    
por Sergiy Kolodyazhnyy 01.11.2016 / 12:50
0
#/bin/bash
#Here you can ask your question just edit "Your Question".
echo "Your Question"
#"read" this command reads input from user and store in text what ever 
#like word "answer" used here as example.
read answer
#"$answer" this input was taken by user from "read"  and stored in word answer . echo prints all words stored in $answer to file like anything.txt or any extention you can use.  
echo $answer > any_file.txt
    
por android lover 01.11.2016 / 12:19