따옴표 안에 있으면 Bash 변수가 변경됩니다.

따옴표 안에 있으면 Bash 변수가 변경됩니다.

패턴과 일치하는 첫 번째 파일을 가져와서 명령문에 사용하려고 합니다. 에 있는 것과 동일한 단계를 사용하십시오.와일드카드 확장에서 첫 번째 일치 항목을 얻는 방법은 무엇입니까?나는 다음을 썼다:

#!/bin/bash
files=("*.sql")
firstfile=${files[0]}
echo $firstfile
echo "The first file is $firstfile"

이것을 실행하면 출력은 다음과 같습니다.

SQL 파일.sql

첫 번째 파일은 *.sql입니다.

$firstfile상황에 따라 값이 변경되는 이유는 무엇입니까 ?

답변1

마지막 줄은 $firstfile의 실제 내용을 인쇄합니다.

첫 번째 에코는 큰따옴표를 사용하지 않았기 때문에 파일 시스템을 통해 $firstfile을 확장합니다.

답변2

파일 줄에서 따옴표를 제거하면 다음과 같은 결과가 남습니다.

#!/bin/bash
files=(*.sql)
firstfile=${files[0]}
echo $firstfile
echo "The first file is $firstfile"

관련 정보