[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: