Re: Strange variable asignement in bash script
On Tue, 8 Feb 2005, Juanillo wrote:
> I think It can't be done.... It's impossible declare a variable with $
> on the left side of = . Am i wrong?
Maybe ;-)
> Anyone knows another method to do that i want?
This works for me with dash and bash:
---8<---
#!/bin/bash -e
SERVICES="service1 service2 service3"
HOSTS="server1 server2 server3" # DON'T USE DOTS IN HOST NAMES
for service in $SERVICES
do
for host in $HOSTS
do
eval "${service}_${host}=\"run $service on $host\""
done
done
for service in $SERVICES
do
for host in $HOSTS
do
echo -n "${service}_${host}="
eval "echo \$${service}_${host}"
done
done
exit 0
---8<---
produces:
service1_server1=run service1 on server1
service1_server2=run service1 on server2
service1_server3=run service1 on server3
service2_server1=run service2 on server1
service2_server2=run service2 on server2
service2_server3=run service2 on server3
service3_server1=run service3 on server1
service3_server2=run service3 on server2
service3_server3=run service3 on server3
hth,
Cristian
Reply to: