URL을 첫 번째 매개 변수로 사용하고 로컬 파일 이름을 두 번째 매개 변수로 사용하는 파일 일괄 처리 스크립트를 작성하려고합니다. 테스트에서 나는 출력 파일 이름에서 공백을 감추고 있다는 것을 알았으므로 sed를 사용하여 이스케이프 처리를 시도했지만 작동하지 않습니다.Curl로 파일을 다운로드하기위한 Bash 스크립트
#!/bin/bash
clear
echo Downloading $1
echo
filename=`sed -e "s/ /\\\ /g" $2`
echo $filename
echo eval curl -# -C - -o $filename $1
하지만 난 메시지를 얻을
나오지 : outfile.txt : 그것 대신에 나오지도 입력과 출력 파일을로드하려고 제안 그러한 파일이 없습니다 또는 디렉토리
출력 파일 이름을 문자열 리터럴로 취급합니다.
올바른 구문은 무엇입니까?
그냥 bash에서 인용 인수를 읽으십시오. 팁 주셔서 감사합니다 –
이것을 확장 주셔서 감사합니다. 귀찮게도, 내가 테스트해야하는 머신은 네트워크 연결을 잃어 버렸지 만, 나는 이것을 믿는다. 그리고 지금 나에게 의미가있다. 호기심에서 벗어나서 버전의 매개 변수 번호 주위에 중괄호의 의미는 무엇입니까? –
쉘 변수를 확장하는 방법을 배웠습니다. 문자열로 보간하려는 경우 다른 텍스트에서 변수를 명확히 구분할 수있는 방법이라고 생각합니다. 예 : FOO = foo; echo "$ {FOO} d" 은 'food'를 인쇄합니다 – cms