스크립트의 명령에 디렉터리 목록(공백 포함) 전달

스크립트의 명령에 디렉터리 목록(공백 포함) 전달

예를 들어, 쉘 스크립트에서 다음 명령을 실행하고 싶습니다.

tar cvpzf /destination/backup.tgz /directory\ one /directory\ two

보다 쉬운 유지 관리를 위해 스크립트 상단의 변수에 경로 목록(공백 포함)을 할당하고 싶습니다.

"/directory\ one /directory\ Two"를 변수에 할당한 다음 변수에 전달하려면 어떻게 해야 합니까? 예 tar:

#!/bin/sh
backup_dirs=?????????
tar cvpzf /destination/backup.tgz $backup_dirs

및 가 별도의 엔터티로 해석되지 않는데 tar명령줄에서 실행할 때 어떻게 그렇게 하지 않을 수 있습니까?/directoryone

답변1

인용하겠습니다:

dir1="directory 1"
dir2="directory 2"

tar cvpzf /destination/backup.tgz "$dir1" "$dir2"

또는 쉘이 이를 지원하는 경우(질문에 태그를 붙인 bash이지만 sh스크립트에서 사용 중인 bash는 지원하지 않음) 배열을 사용하십시오.

targets=( "directory 1" "directory 2" )
tar cvpzf backup.tgz "${targets[@]}"

관련 정보