BashScripting:读取特定变量
我的问题实际上相当简单,但我不擅长 bash 脚本,谷歌也没有帮助。所以问题是这样的: 我有一个可执行文件,可以将一些变量写入标准输出。像这样的事情:
MrFoo:~$ ./someExec
Variable1=5
Another_Weird_Variable=12
VARIABLENAME=42
我现在想做的是读入这些变量中的一个特定变量(我已经知道它的名称),存储该值并使用它作为另一个可执行文件的参数。
所以,一个简单的电话,比如
./function2 5 // which comes from ./function2 Variable1 from above
我希望你理解这个问题并可以帮助我解决它
my question is actually rather easy, but I suck at bash scripting and google was no help either. So here is the problem:
I have an executable that writes me a few variables to stdout. Something like that:
MrFoo:~$ ./someExec
Variable1=5
Another_Weird_Variable=12
VARIABLENAME=42
What I want to do now is to read in a specific one of these variables (I already know its name), store the value and use it to give it as an argument to another executable.
So, a simple call like
./function2 5 // which comes from ./function2 Variable1 from above
I hope you understand the problem and can help me with it
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
使用
awk
你可以做这样的事情(这是为了传递第一个变量的值)或
With
awk
you can do something like this (this is for passing value of 1st variable)or
最简单的方法可能是结合使用 shell 和 perl 或 ruby。我会选择 Perl,因为这是我刚开始接触的东西。 :)
someExec.sh
my_shell_script.sh
[编辑]
或者 awk,正如 Jaypal 在我发布答案前 58 秒指出的那样。 :) 基本上,有很多好的解决方案。但最重要的是,确保正确处理安全和错误情况。到目前为止,在这两个解决方案中,我们假设 someExec 将提供有保证的格式良好且无害的输出。但是,请考虑 someExec 是否受到损害,而是提供如下输出:
Easiest way to go is probably to use a combination of shell and perl or ruby. I'll go with perl since it's what I cut my teeth on. :)
someExec.sh
my_shell_script.sh
[EDIT]
Or awk, as Jaypal pointed out 58 seconds before I posted my answer. :) Basically, there are a lot of good solutions. Most importantly, though, make sure you handle both security and error cases properly. In both of the solutions so far, we're assuming that someExec will provide guaranteed well-formed and innocuous output. But, consider if someExec were compromised and instead provided output like:
您可以像这样使用 awk:
相当于:
You can use awk like this:
which is equivalent to:
如果您可以确保 someExec 的输出是安全的,您可以使用 eval。
If you can make sure someExec's output is safe you can use eval.
您可以使用这种非常简单直接的方法:
You can use this very simple and straight forward way:
如果您只想使用文件中的一个变量
,请使用以下命令;如果您想使用文件中的所有变量,请使用
If you want to use only one variable from the file use the below
And, if you want to use all the variables of a file, use