| Author |
How to read a .properties file through script
|
rahulJ james
Ranch Hand
Joined: Oct 03, 2008
Posts: 122
|
|
I have a appl.properties file with a key value pair. I just wanted to use 2 values from the properties file in my script. Assume I have name=jack and age=50 in my appl.properties file and in my script I have variables with values like #name# and #age#. I have to get the value of the key "name" and "age" from the properties file and replace the strings #name# and #age# which I have it in my script. Can anyone advise
|
 |
Tim Holloway
Saloon Keeper
Joined: Jun 25, 2001
Posts: 12513
|
|
The easy way to do it is to note that a Java properties file has the same format as a basic shell script. However, there's a trick to it. If you just run the properties file like so: sh appl.properties The assignments will be made at the sub-level, then discarded when the properties file (script) ends execution. So to get the properties in a calling script, you need to use the "source" command: . appl.properties Note that the space after the initial dot is very important! To reference shell variable assignments, you use the "$" to indicate variable substitution. So, to put it all together:
|
One of the most odious afflictions that Business has inflicted on the modern English language is "pro-active". Most of the time it's simply redundantly used in place of the simple old word "active". And a good deal of the rest of the time it means "You're not overworked enough yet, so go out and find more!"
|
 |
java cousin
Greenhorn
Joined: Jan 14, 2009
Posts: 1
|
|
|
You are ausome !!
|
 |
Jesper de Jong
Java Cowboy
Bartender
Joined: Aug 16, 2005
Posts: 11642
|
|
|
"java cousin", please check your private messages. You can see them by clicking My Private Messages.
|
Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
|
 |
sameer sood
Greenhorn
Joined: Dec 05, 2007
Posts: 27
|
|
|
This will require making properties file executable any other suggestions ?
|
Sameer Sood
SCJP 1.5 (93%), SCWCD 1.5 (95%)
|
 |
sameer sood
Greenhorn
Joined: Dec 05, 2007
Posts: 27
|
|
PLease help
. filename
prints all on screen , anyway to stop it ??
|
 |
Joshua Davis
Greenhorn
Joined: Nov 26, 2010
Posts: 2
|
|
Tim Holloway wrote:The easy way to do it is to note that a Java properties file has the same format as a basic shell script.
However, there's a trick to it. If you just run the properties file like so:
sh appl.properties
The assignments will be made at the sub-level, then discarded when the properties file (script) ends execution.
So to get the properties in a calling script, you need to use the "source" command:
. appl.properties
Note that the space after the initial dot is very important!
To reference shell variable assignments, you use the "$" to indicate variable substitution.
So, to put it all together:
This solution is good because it's simple, but it will only work if you have Java properties file that doesn't have any property names or values that have special characters (to shell) in them. For example, if there is a property with a '.' in the name, then this solution won't work. That's the case for most Java properties files I've used, especially those used with ANT.
Here is a properties file that Java can read, but bash can't:
The second property is going to cause problems because it has a dot in the name, as well as having spaces in the value. Java and ANT can read this in just fine, but bash can't:
Here are a few solutions that are a little more robust: http://shrubbery.mynetgear.net/c/display/W/Reading+Java-style+Properties+Files+with+Shell
|
 |
Tim Holloway
Saloon Keeper
Joined: Jun 25, 2001
Posts: 12513
|
|
Welcome to the CodeRanch, Joshua!
You're quite correct, and that page is a very useful resource.
It does, however, leave out 1 important method:
When I use a properties file in the shell, I normally only put the coarsest properties in that file (which may include paths to finer-grade properties that the Java code itself reads). So it's no particular hardship to follow that rule. For me, anyway.
|
 |
Joshua Davis
Greenhorn
Joined: Nov 26, 2010
Posts: 2
|
|
|
Fair enough, and thanks reading!
|
 |
Stefan Wagner
Ranch Hand
Joined: Jun 02, 2003
Posts: 1920
|
|
Yes, this is quick and dirty:
> fred of 42
If age=$(rm -rf /), you loose, or name=Bobby$(psql pupil -c "DROP TABLE user").
|
http://home.arcor.de/hirnstrom/bewerbung
|
 |
Miguel Angel Casanova
Greenhorn
Joined: May 24, 2011
Posts: 1
|
|
Tim Holloway wrote:The easy way to do it is to note that a Java properties file has the same format as a basic shell script.
However, there's a trick to it. If you just run the properties file like so:
sh appl.properties
The assignments will be made at the sub-level, then discarded when the properties file (script) ends execution.
So to get the properties in a calling script, you need to use the "source" command:
. appl.properties
Note that the space after the initial dot is very important!
To reference shell variable assignments, you use the "$" to indicate variable substitution.
So, to put it all together:
Thank you!!!
|
 |
Campbell Ritchie
Sheriff
Joined: Oct 13, 2005
Posts: 26710
|
|
Welcome to the Ranch MAC
|
 |
Jay Dilla
Ranch Hand
Joined: Aug 12, 2004
Posts: 194
|
|
[/code]
Here are a few solutions that are a little more robust: http://shrubbery.mynetgear.net/c/display/W/Reading+Java-style+Properties+Files+with+Shell
this is not working for me
what type of shell does this work with?
|
 |
 |
|
|
subject: How to read a .properties file through script
|
|
|