0
사라 ... 배쉬 출력
#!/bin/bash
ATTEMPTS=3
DEST_DIR="/opt/satnet"
ATTEMPTS=3
URL="https://github.com/google/snappy/tarball/master"
CURL_OPTS='-sIkL'
SED_REGEX='/filename=/!d;s/.*filename=(.*)$/\1/'
FILENAME="$(curl $CURL_OPTS $URL | sed -r $SED_REGEX)"
DEST_FILE="$DEST_DIR/$FILENAME"
printf "\t* URL = %s\n" $URL
printf "\t* Remote tarball filename = %s\n" $FILENAME
WGET_BIN='wget'
WGET_OPTS_1="-t $ATTEMPTS -c -O $DEST_FILE"
WGET_OPTS="-t $ATTEMPTS -c -O $DEST_FILE $URL"
printf "\t* wget opts 1 = %s\n" "$WGET_OPTS_1"
printf "\t* wget opts = %s\n" "$WGET_OPTS"
echo " * wget opts 1 = $WGET_OPTS_1"
echo " * wget opts = $WGET_OPTS"
... 첫 번째 플러스 URL의 출력을 포함해야 두 번째 변수에 대한 출력; 그러나, 그것은 단지 URL을 표시하고 그것도 URL 전에 간다 문자열의 일부가 표시되지 않습니다
* URL = https://github.com/google/snappy/tarball/master
* Remote tarball filename = google-snappy-1.1.7-0-gb02bfa7.tar.gz
* wget opts 1 = -t 3 -c -O /opt/satnet/google-snappy-1.1.7-0-gb02bfa7.tar.gz
https://github.com/google/snappy/tarball/mastergle-snappy-1.1.7-0-gb02bfa7.tar.gz
* wget opts 1 = -t 3 -c -O /opt/satnet/google-snappy-1.1.7-0-gb02bfa7.tar.gz
https://github.com/google/snappy/tarball/mastersnappy-1.1.7-0-gb02bfa7.tar.gz
을 그것은이다 같은 경우, 어떤 이유로, 시작 부분의 "제거"URL을 추가 문자열.
내가 뭘 잘못하고 있니?
당신이 DOS 줄을 사용하여 컬 문제로 실행하는 대부분의 경우 처음으로 커서를 반환하는 * 캐리지 리턴 *을 포함 종료 첫 번째 행을 다음 행으로 겹쳐 쓰게하는 행의 ('$ FILENAME'에서 캐리지 리턴을 얻은 것으로 의심됩니다.) –
''curl' 결과에서'\ r' 문자를 제거해보십시오 :'FILENAME = "$ (curl $ CURL_OPTS $ URL | sed -r $ SED_REGEX | tr -d '\ r') "' – janos
@ 그것을 일한 @janos! 질문에 대한 답변으로 의견을 게시하십시오! – Ricardo