I’ve been having some problems with a shell script that changes a configuration file named “.backup.conf”.
The configuration file looks like this:
inputdirs=(/etc /etc/apm /usr/local)
outputdir="test_outputdir"
backupmethod="test_outputmethod"
loglocation="test_loglocation"`
My script needs to change one of the configuration file variables, and I’ve had no trouble with the last 3 variables.
If I wanted to change variable “inputdirs” /etc/ to /etc/perl, what expression should I use?
If I use echo with append, it will only append it to the end of the file.
I’ve tried using sed in the following format:
sed -i 's/${inputdirs[$((izbor-1))]}/$novi/g' .backup.conf where “izbor” is which variable I want to change from inputdirs and “novi” is the new path (e.g. /etc/perl).
So, with the following configuration file, and with variables $izbor=1and $novi=/etc/perl I should change the first variable inputdirs=/etc to /etc/perl
and the variable inputdirs should finally look like inputdirs=(/etc/perl /etc/apm /usr/local)
Thank you for your help!
You could try this:
A summary of the commands:
$enovithat has the escaped contents of$novi. Basically,the following characters are escaped:&,\, and/. So/etc/perlbecomes\/etc\/perl.$izbor.[(].[^ ]*).$izbor1times ({$izbor1})\1.\1, followed by our new string.Hope this helps =)