
Tengo lo siguiente:
echo "PLATFORM = $PLATFORM"
DATE_STRING=`date +"20%y-%m-%d"`
echo "DATE_STRING = $DATE_STRING"
# VERSION_LINE will be something like: '#define VERSION_STRING "1.2p2"'
VERSION_LINE=`grep "^#define VERSION_STRING" ../version.hpp`
# - awk pulls the "1.2p2"
# - tr deletes the surrounding quotes
VERSION_STRING=`echo "$VERSION_LINE" | awk '{ print $3 }' | tr -d '"'`
echo "VERSION_STRING = $VERSION_STRING"
echo "####### Creating Archive ###########"
BINARY_FILE="build${PLATFORM}-${VERSION_STRING}-${DATE_STRING}_CLXXXXXXXX.zip"
echo "BINARY_FILE is $BINARY_FILE"
La salida es
PLATFORM = Linux64
DATE_STRING = 2015-10-31
VERSION_STRING = 1.2p2
####### Creating Archive ###########
-2015-10-31_CLXXXXXXXX.zip4-1.2p2
Todas las entradas para la expansión de BINARY_FILE me parecen correctas, pero el resultado está arruinado. Me encontré con esto hace varios años, pero nunca recuerdo qué lo causa. ¿Algunas ideas? ¡Gracias!
Respuesta1
Es casi seguro que hay algo no imprimible ahí jugando con la pantalla del terminal, y tengo el presentimiento de que es un \r
carácter eturn sacado de../version.hpp
por grep
dentro $VERSION_LINE
y desde allí por awk
dentro$VERSION_STRING
. Podría estar equivocado, pero deberíascorrer:
./yourscript | sed -n l
...para tener una idea de lo que sea.
Por cierto, es muy posible que echo
también esté arruinando tu producción. Un dispositivo compatible con los estándares UNIXecho
Un dispositivointerpretar escapes estilo Cen sus argumentos.