UNIX KSH - 와일드카드가 포함된 문자열을 변수에 할당할 때 큰따옴표가 있거나 따옴표가 없습니까?

UNIX KSH - 와일드카드가 포함된 문자열을 변수에 할당할 때 큰따옴표가 있거나 따옴표가 없습니까?

저는 UNIX를 처음 접했고 현재 파일 abc_123_date.zip이름이 가 되도록 쉘 스크립트를 작성 중입니다 abc_123_12312005. 해당 문자열을 변수에 저장한 다음 abc_123_*.zip명령에서 하드코딩하는 대신 사용할 계획입니다. 예를 들어:findif [ -f ... ]

file_name=abc_123_*.zip

그런 다음 나머지 코드에서는 $file_name해당 문자열이 필요한 모든 작업 대신 실제 문자열을 사용할 수 있습니다.

이 문자열을 저장하는 가장 좋은 방법은 무엇입니까?

Option 1: file_name=abc_123_*.zip

Option 2: file_name="abc_123_*.zip"

어느 것이 더 나은 선택입니까? 왜?

감사해요!

답변1

파일 이름 와일드카드에 관한 한 파일 이름 와일드카드는 쉘에 중요하지 않기 때문에 선호도의 문제입니다. 따옴표가 있는지 여부에 관계없이 일반(배열이 아닌) 할당에서는 파일 이름 확장 및 토큰화가 발생하지 않습니다.

다른 많은 상황에서도 따옴표가 필요하지만 값에 공백이나 셸 연산자(예 ;: 등) 가 포함된 경우 (할당에도 따옴표가 필요합니다 . >따라서 일부 사람들은 어디에서나 동일한 사용자 정의를 사용하기 위해 여기에서도 사용하기를 원할 수 있습니다.

또한보십시오:언제 큰따옴표가 필요합니까?

관련 정보