Как записать пользовательский ввод в файл в сценарии оболочки? [закрыто]

Мой друг показывал мне программу в shell script, которую он сделал, где он открывал программу, она задавала вопрос, он вводил ответ. Затем она закрывалась, но все, что он вводил в качестве ответа, передавалось в текстовый документ.

-1
задан 7 September 2014 в 04:17

3 ответа

Я предложил бы запуститься с чего-то как

#!/bin/bash

read -p "Your question here: "

echo "$REPLY" > somefile

, можно читать больше об ударе read команда или из страницы руководства (man bash) или путем ввода help read при приглашении оболочки.

4
ответ дан 7 October 2019 в 03:57

Если ответ не должен быть протестирован, достаточно выполнить в нем всего одна строка:

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

Что происходит, вот, мы используем echo к синтезируемому тексту на экране. && просто булев оператор и означает, "если предыдущая команда была успешна, выполните второй". && не важно здесь, и ; мог использоваться точно также. cat > output.txt забавная часть - без указанного файла, кошка будет читать stdin поток по умолчанию (который в этом случае является Вашей клавиатурой) и бессмысленно повторяет ее к stdout. Что > делает, отправляют stdout поток в файл. Так в основном мы повторно соединили потоки данных проводом для движения от клавиатуры до файла, вместо клавиатуры на терминальный экран, во всего нескольких символах текста.

Это должно не обязательно быть сделано в одной только оболочке, она может быть сделана с другими инструментами, как 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
1
ответ дан 7 October 2019 в 03:57
#/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
0
ответ дан 7 October 2019 в 03:57

Другие вопросы по тегам:

Похожие вопросы: