我有一个Bash脚本,它基本上初始化一个应用程序并设置参数。其中一个参数是OpenOffice的位置。现在,OpenOffice在安装时不会设置环境变量。
找到安装的应用程序位置并缓存该信息的最佳方法是什么,这样您下次不必进行I / O操作?
我在想的只是在/ usr /上为具有特定文件的OpenOffice目录运行查找。当找到将该目录存储在环境变量中并在此脚本中检查环境变量是否已设置且是否为目录时,如果是,则使用它,如果不再搜索。
这将允许脚本在没有用户交互的情况下工作,但也允许用户自己设置路径(因为它是一个环境变量)。
这似乎是一种“不良做法”,所以我希望其他人可以给我一些获取软件安装信息的常用方法。如果有帮助,最有可能使用aptitude安装OpenOffice。
答案 0 :(得分:1)
我通常看到它的方式是使用这样的代码:
[ -z "$OO_EXE" ] && OO_EXE=/usr/bin/oo # or whatever the executable is called
然后,您始终可以假设稍后在脚本中设置OO_EXE
环境变量。用户可以在运行脚本之前通过在环境中设置OO_EXE
来覆盖默认值,但如果他没有,那么脚本将回退到默认值。
如果你想在第一次运行脚本时动态找到默认值并每隔一段时间重复使用它,那么我会在第一次运行脚本时提示用户输入路径,在用户家中删除一个点文件目录,并每隔一段时间从该文件中读取。
答案 1 :(得分:1)
许多应用程序在自行安装时设置了这些值。例如,当用户运行应用程序的配置脚本时,用户可以指定ooffice的位置。该脚本将使用该值或尝试查找它,或者如果用户未指定,则使用默认值。安装应用程序后,它将具有硬编码值。
答案 2 :(得分:0)
您可以使用命令which
。
asafe@mimimi:~$ which openoffice.org
/usr/bin/openoffice.org
asafe@mimimi:~$