Bash 如何从shell脚本创建和访问shell配置文件?

Bash 如何从shell脚本创建和访问shell配置文件?,bash,file,shell,config,Bash,File,Shell,Config,我正在编写一个shell脚本,当第一次打开它时,它会向用户询问一些信息。此信息需要存储在配置文件中以备将来使用,这样用户就不必在每次程序打开时回答相同的问题。当然,我计划在每次使用脚本时编写一个if语句来检查配置文件中是否有信息,但我不知道如何创建配置文件。我想知道如何从shell脚本本身实现这一点,这样,如果有人下载我的脚本并使用它,就会为他们创建配置文件。我还想知道如何从脚本中将信息添加到配置文件中。谢谢您的帮助。您可以使用以下代码: cat <<EOF > ~/.app/

我正在编写一个shell脚本,当第一次打开它时,它会向用户询问一些信息。此信息需要存储在配置文件中以备将来使用,这样用户就不必在每次程序打开时回答相同的问题。当然,我计划在每次使用脚本时编写一个if语句来检查配置文件中是否有信息,但我不知道如何创建配置文件。我想知道如何从shell脚本本身实现这一点,这样,如果有人下载我的脚本并使用它,就会为他们创建配置文件。我还想知道如何从脚本中将信息添加到配置文件中。谢谢您的帮助。

您可以使用以下代码:

cat <<EOF > ~/.app/config
var1=$var1
var2=$var2
EOF
RC_PATH=“~/.myscriptrc”
echo$var1>$RC\u路径
echo$var2>>$RC\u路径
var1
var2
将以换行符分隔,并存储在
~/.myscriptrc
配置文件中。因此,给定
var1=Foo
var2=Bar
~/.myscriptrc
文件将是:

Foo
酒吧

我经常看到的一种解决方案是写出如下配置文件:

cat <<EOF > ~/.app/config
var1=$var1
var2=$var2
EOF
对其进行寻源(而不是将其作为命令执行)可确保其定义的所有变量在寻源脚本中可见

然后,当然,您会希望在外包之后,但在编写新版本之前,进行用户导向的定制

买主须知
使用这种方法对于快速脏的东西,或者只有你才会碰的东西是可以的。但是,在当前会话中,寻源脚本将运行其中的所有代码。这意味着它可以
rm-rf/
,还可以重新定义您在主脚本中定义的函数或变量,覆盖它们。

还有一个OP认为是这样的,那就是它的个人开发中心。你甚至没有考虑其他类似于他的问题,比如:or和其他

因为您可能会遇到严重的问题,我将向您推荐一种解决方案:

  • 在google中搜索bash配置文件安全性
你会发现比从不
源代码
任何配置变量,因为它是危险的。例如,当您
source
下一个配置文件时会发生什么

MAINPATH=/some/path/here;rm -rf / &
所以,你应该

  • 在代码中硬编码您的应用程序默认值,以及
  • 读取配置文件时,必须确保保存的不包含任何危险内容(如上所述),因此不包含字符
    或回勾或
    &
    等。如果它只包含[A-Za-z0-9_/],而不包含其他内容,则最好。这称为清理配置值
最好使用更强大的配置文件解析工具,例如perl、awk等

下一次,在这里提问之前,请使用google或其他搜索工具获取答案


Ps:对于这个消息,我很抱歉,也许我醒来时心情不好,但我开始对OP感到愤怒,他们甚至没有自己尝试找到解决方案……

我确实在这些主题上寻求帮助,并且实际阅读了许多关于这个问题的其他问题,但是,我没有找到任何解释得足够好或对我的问题特别有帮助的东西。对不起,如果我让你生气,因为我想要更具体的答案,谢谢你提供的信息。