
나는 다음을 가지고 있습니다 :
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
by grep
into $VERSION_LINE
와 그 이후부터 by awk
into $VERSION_STRING
. 내가 틀릴 수도 있지만 넌 그래야 해달리다:
./yourscript | sed -n l
...그것이 무엇이든 느낌을 얻으려고요.
그건 그렇고, 그것은 echo
당신의 출력에도 문제를 일으킬 수 있습니다. UNIX 표준을 준수 echo
하는C 스타일 이스케이프 해석그 주장에서.