
以下のものがあります:
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"
出力は
PLATFORM = Linux64
DATE_STRING = 2015-10-31
VERSION_STRING = 1.2p2
####### Creating Archive ###########
-2015-10-31_CLXXXXXXXX.zip4-1.2p2
BINARY_FILE の拡張に対する入力はすべて正しいように見えますが、結果はおかしくなっています。数年前にこれに遭遇したことがありますが、原因が思い出せません。何かアイデアはありますか? ありがとうございます!
答え1
そこには端末ディスプレイをいじくり回している印刷できない何かが間違いなくあるし、それは\r
eturn文字から取得されたものであると私は予感している。../version.hpp
によってgrep
、$VERSION_LINE
そしてそこからによってにawk
。$VERSION_STRING
私は間違っているかもしれないが、あなたは走る:
./yourscript | sed -n l
...それが何であれ、その感触をつかむためです。
ちなみに、echo
出力も台無しにする可能性があります。UNIX標準に準拠しecho
たCスタイルのエスケープを解釈するその議論の中で。