![UNIX KSH - 와일드카드가 포함된 문자열을 변수에 할당할 때 큰따옴표가 있거나 따옴표가 없습니까?](https://linux55.com/image/175974/UNIX%20KSH%20-%20%EC%99%80%EC%9D%BC%EB%93%9C%EC%B9%B4%EB%93%9C%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EB%B3%80%EC%88%98%EC%97%90%20%ED%95%A0%EB%8B%B9%ED%95%A0%20%EB%95%8C%20%ED%81%B0%EB%94%B0%EC%98%B4%ED%91%9C%EA%B0%80%20%EC%9E%88%EA%B1%B0%EB%82%98%20%EB%94%B0%EC%98%B4%ED%91%9C%EA%B0%80%20%EC%97%86%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
저는 UNIX를 처음 접했고 현재 파일 abc_123_date.zip
이름이 가 되도록 쉘 스크립트를 작성 중입니다 abc_123_12312005
. 해당 문자열을 변수에 저장한 다음 abc_123_*.zip
명령에서 하드코딩하는 대신 사용할 계획입니다. 예를 들어:find
if [ -f ... ]
file_name=abc_123_*.zip
그런 다음 나머지 코드에서는 $file_name
해당 문자열이 필요한 모든 작업 대신 실제 문자열을 사용할 수 있습니다.
이 문자열을 저장하는 가장 좋은 방법은 무엇입니까?
Option 1: file_name=abc_123_*.zip
Option 2: file_name="abc_123_*.zip"
어느 것이 더 나은 선택입니까? 왜?
감사해요!
답변1
파일 이름 와일드카드에 관한 한 파일 이름 와일드카드는 쉘에 중요하지 않기 때문에 선호도의 문제입니다. 따옴표가 있는지 여부에 관계없이 일반(배열이 아닌) 할당에서는 파일 이름 확장 및 토큰화가 발생하지 않습니다.
다른 많은 상황에서도 따옴표가 필요하지만 값에 공백이나 셸 연산자(예 ;
: 등) 가 포함된 경우 (
할당에도 따옴표가 필요합니다 . >
따라서 일부 사람들은 어디에서나 동일한 사용자 정의를 사용하기 위해 여기에서도 사용하기를 원할 수 있습니다.
또한보십시오:언제 큰따옴표가 필요합니까?