[bcn-pm] Problemilla con script

José Luis Pérez Diez jluis at escomposlinux.org
Fri Feb 11 03:50:18 PST 2005


On Divendres 11 Febrer 2005 10:15, TooManySecrets wrote:
> Ajam, pero luego ocurre que no me interpreta algunas variables que
> necesitaría que pudiese interpretar, como la de $datos{presence} que te
> aparece aquí abajo en la prueba que has realizado. ¿Cómo se podría
> evitar esto?

Yo usaria una de estas opciones escapar los $ con \$ y usar comillas dobles  
usar printf  con comillas sencillas y  use Text::Template :

Escapar los $ necesarios y usar comillas dobles:

$datos{presence} ='hola';
print <<EOF;
# \$FreeBSD: ports/ftp/proftpd/files/proftpd.sh,v 1.1 2003/11/03 19:40:38 
mharo Exp \$
required_files="/usr/local/etc/$datos{presence}_ftp.conf"
case \$1 in
    \${command} -c \${required_files}
    kill `cat /var/ftp/presence/"\$datos
   echo "Uso: `basename \$0` {start|stop}" >&2
EOF

O usar printf con comillas simples:
printf <<'EOF',$datos{presence};
# $FreeBSD: ports/ftp/proftpd/files/proftpd.sh,v 1.1 2003/11/03 19:40:38 mharo 
Exp$
required_files="/usr/local/etc/%s_ftp.conf"
case $1 in
    ${command} -c ${required_files}
    kill `cat /var/ftp/presence/"$datos
   echo "Uso: `basename $0` {start|stop}" >&2
EOF

Text::Template no la comento pero se basa en eejecutar el codigo perl 
compredido entre pares de delimitadores por defecto son  "{" y  "}" pero 
pueden secuencias de caracteres arbitrarias en la documentacion usan "[@---" 
y "---@]"


More information about the Barcelona-pm mailing list