我的朋友向我展示了一个 shell 脚本程序,他打开该程序,程序会提出一个问题,然后他输入答案。然后程序会关闭,但他输入的答案都会被传输到文本文档中。
答案1
我建议先从类似
#!/bin/bash
read -p "Your question here: "
echo "$REPLY" > somefile
您可以read
从手册页 ( ) 或在 shell 提示符下man bash
输入来了解有关 bash 命令的更多信息。help read
答案2
如果不需要测试响应,则仅用一行即可完成:
$ 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
有趣的部分是 - 如果不指定文件,cat 将stdin
默认读取流(在本例中是你的键盘)并将其重复给stdout
。 所做>
的是将stdout
流发送到文件。 所以基本上,我们重新连接了数据流,使其从键盘传输到文件,而不是从键盘传输到终端屏幕,只需几个文本字符。
这不一定需要单独在 shell 中完成,可以使用其他工具来完成,例如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
答案3
#/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