用于从属性文件读取属性的linux bash工具
我希望能够运行命令从属性文件获取属性。所以如果我的属性文件是property.props并且用于从属性文件读取属性的linux bash工具,linux,bash,Linux,Bash,我希望能够运行命令从属性文件获取属性。所以如果我的属性文件是property.props并且 username=dsollen password=letMeIn linux-skills=newb 我想有一个快速的方法来拉出属性,并将其导入其他命令。所以 ./myProgram -v -p `getProp property.props password` 或者类似的东西;不确定我是否使用了“正确的,但这是一个不同的新linux问题,稍后再讨论:) 我知道我可以通过grep和cut/awk
username=dsollen
password=letMeIn
linux-skills=newb
我想有一个快速的方法来拉出属性,并将其导入其他命令。所以
./myProgram -v -p `getProp property.props password`
或者类似的东西;不确定我是否使用了“正确的,但这是一个不同的新linux问题,稍后再讨论:)
我知道我可以通过grep和cut/awk/sed/任何组合来实现这一点,但我想知道是否已经有一个工具“知道”如何读取公共属性文件格式并执行类似的操作?如果没有,我可以写一些东西添加到我的脚本文件夹中,只是不想在已有更好的轮子的情况下重新发明轮子。您可以使用来完成这项工作。顺便说一下,我是作者
从源代码来看,这是您感兴趣的部分:
get_variable() {
< "$FILE" grep -w "$1" | cut -d'=' -f2
}
get_变量(){
<“$FILE”grep-w“$1”| cut-d'='-f2
}
我假设您的属性键是唯一的,如果是这样,那么以下可能是一种方法:
grep -w "$1" <property.props
grep-w“$1”看,只需在.bashrc中定义一个函数:
getProp() {
awk -F "=" "/^$2=/ {print "'$2'"; exit; }" $1
}
并在外壳中使用它:
$ getProp property.pros password
letMeIn
$ getProp property.pros linux-skills
newb
您可能希望使用shellcheck.net检查代码。我对主页的5秒钟扫描表明,这仅适用于全局变量。它可以用来简单地返回一个变量而不使其成为全局变量吗?@dsollen他发布的函数并没有使其成为变量,它只是返回值。您可以对该函数执行任何您想要的操作。您应该使用grep-w
,否则如果文件中有pass
和password
,并且您对pass
进行grep,则会发生冲突。啊,这是一个很好的TIL,谢谢!:d这可能是相关的:虽然该代码可以回答该问题,但提供关于为什么和/或如何回答该问题的额外上下文将显著提高其长期价值。请在您的回答中添加一些解释。
$ getProp property.pros password
letMeIn
$ getProp property.pros linux-skills
newb