스크립트 작성이 처음입니다. 서버에서 파일을 다운로드하고 Linux의 날짜-시간을 사용하여 동적으로 정의 된 디렉토리에 저장하는 스크립트를 작성해야합니다.
다음은 어떻게 생겼는지
dir_path="/Users/me/Downloads/stuff/data_vm/"
pem_path="/Users/me/Downloads/mypem"
이제 디렉토리 이름을 정의합니다.
dir_name="backup_$(date +%Y-%m-%d_%H:%M:%S)"
그런 다음 dir_path
및dir_name
final_path="${dir_path}${dir_name}"
이제이 경로에 디렉토리를 만듭니다.
mkdir "${final_path}"
이제 scp
명령 에서 위에 정의 된 변수를 사용하는 데 문제가 있습니다. 이것이 제가하는 것입니다
scp -i "${pem_path}" -r [email protected]:/home/ec2-user/stats/dom/files/ "$(final_path)"
디렉토리를 만들 수 있지만 명령 command not found
이 포함 된 줄을 얻 습니다 scp
.
내가 도대체 뭘 잘못하고있는 겁니까?
오타 "$(final_path)"
가 있습니다 : 이어야합니다 "$final_path"
(또는 "${final_path}"
중괄호를 좋아하는 경우).
를 사용 "$(final_path)"
하면 쉘은 final_path
명령 대체 (명령 출력을 문자열로 대체, date
이전에 사용) 에서 실행할 명령으로 간주합니다 . 양식에 오류가 발생할 것으로 예상됩니다.
sh: final_path: command not found
또한 ${variable}
구문은 또는 에서와 같이 변수 이름의 유효한 문자 인 문자와 연결하는 문자열 내 에서 확장을 사용하려는 경우 에만 실제로 필요$variable
합니다 . 다른 모든 경우에는을 사용하는 것으로 충분 하지만 이것은 개인적인 습관으로 귀결 될 수 있습니다."${variable}_"
"${variable}hello"
"$variable"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다