我想将用户消息存储在bash程序中,然后在用户下次运行脚本时显示消息。
我认为这可能工作的一种方式是,如果我将消息导出到环境variables,但我不能得到它的工作。
这是我到目前为止,但它不工作:
echo "Last message was: $KEEPTHISMESSAGE" echo "Type the new message that you want to enter, followed by [ENTER]:" read KEEPTHISMESSAGE export KEEPTHISMESSAGE
我究竟做错了什么? 如果有更好的方法来做到这一点,请让我知道。 也许保留一个文件,保持这些消息的历史,并获得最新的?
你不能这样使用EXPORT。 它只输出到从该脚本调用开始的进程。 您必须将消息存储在文件系统的文件中,并在用户下次执行脚本时加载。 非常简单:
echo "Last message was: $(cat message.txt)" echo "Type the new message that you want to enter, followed by [ENTER]:" read KEEPTHISMESSAGE echo $KEEPTHISMESSAGE > message.txt
你将不得不研究第一次发生什么(当message.txt不存在的时候),并且如果你在不同的目录中运行脚本的话,还会提供message.txt
相对/绝对路径。
脚本只能将变量直接导出到其子进程。 他们不能导出到父进程。
你可以通过调用你的脚本来改变父母的环境:
$ . /path/to/your_script.sh
这里你的脚本应该有一个export语句来导出变量,而且不能有exit语句。