Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于从属性文件读取属性的linux bash工具_Linux_Bash - Fatal编程技术网

用于从属性文件读取属性的linux bash工具

用于从属性文件读取属性的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

我希望能够运行命令从属性文件获取属性。所以如果我的属性文件是property.props并且

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