예를 들어, 쉘 스크립트에서 다음 명령을 실행하고 싶습니다.
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
명령줄에서 실행할 때 어떻게 그렇게 하지 않을 수 있습니까?/directory
one
답변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[@]}"