2011-05-05 10 views
10

estoy usando esteNombre de archivo no imprimir correctamente con subrayado "_" en bash

DATE_FOLDER=$(date +"%b-%d-%a-%G") 
FILENAME="HOME_$date1.tar.gz" 

echo $BACKUP_DESTINATION/$DATE_FOLDER/$FOLDERNAME_$FILENAME 

Mi salida es

home/May-04-Wed-2011/HOME_May-04-0718PM-2011.tar.gz 

pero si uso "-" en vez de subrayado "_"

echo $BACKUP_DESTINATION/$DATE_FOLDER/$FOLDERNAME-$FILENAME 

entonces mi ouput es correcta

/home/May-04-Wed-2011/vmware-HOME_May-04-0717PM-2011.tar.gz 

Respuesta

23

_ es un carácter válido para un nombre de variable, y $FOLDERNAME_ no existe.

echo "$BACKUP_DESTINATION/$DATE_FOLDER/${FOLDERNAME}_$FILENAME" 
+0

gracias, no noté que – Mahakaal

+0

¡Muchas gracias! –

-2

El problema es aquí: HOME_$date1.tar.gz y también aquí: _$FILENAME. Si usa _$, se escapa el $.

Sin embargo, puede hacerlo con: \\_$. Luego se escapa el _ con el \ y el $ se interpretará como usted está acostumbrado.

+0

La solución propuesta realmente funciona, pero la explicación es una carga de estiércol. -1 – tripleee

Cuestiones relacionadas