작은따옴표 안에 변수 내부의 값을 인쇄하는 방법이 있습니까?

작은따옴표 안에 변수 내부의 값을 인쇄하는 방법이 있습니까?

변수를 설정했고 or 로 인쇄 site해야 한다고 생각하세요 . 하지만 작은따옴표를 사용하여 무언가를 작성하고 변수를 사용하고 싶다면 어떻게 해야 할까요?echoprintf

예:

$ site=unix.stackexchange.com
$ echo "visit:$site"
visit:unix.stackexchange.com

그러나 작은따옴표를 사용하는 경우:

$ echo 'visit:$site'
visit:$site

그렇다면 우리는 이것이 ''강력한 참조이고 변수를 확장하지 않을 것이라는 것을 알고 있습니다.

나는 몇 가지를 시도했습니다:

$ echo 'visit:"$site"'
visit:"$site"

그러나 성공하지 못했습니다. 그래서 나는 찾고 있어요작은따옴표를 사용하여 변수의 내부 값을 인쇄하는 방법.

답변1

작은따옴표 안에는 변수를 확장할 수 없습니다. 그러나 작은따옴표를 끝내고 큰따옴표를 시작할 수 있습니다.

echo 'visit:"'"$site"'"'

또는 큰따옴표 안의 큰따옴표를 백슬래시로 처리할 수 있습니다.

echo "visit:\"$site\""

답변2

가변 내용을 인쇄할 때 다음 사항을 준수해야 합니다.에코 대신 printf:

printf 'visit:%s\n' "$site"

의 문자에 관계없이 visit:다음 내용 $site과 개행 문자가 출력됩니다 $site.

답변3

나는 당신이 출력을 원한다고 가정합니다

visit:'unix.stackexchange.com'

하지만스티븐의 대답위험하므로 다음 접근 방식을 권장합니다.

$ cat << EOF
> visit:'$site'
> EOF

답변4

문자열과 변수를 연결할 때 변수는 따옴표 바깥에 있어야 합니다. 따옴표 사이에 있는 내용은 문자 그대로 인쇄되기 때문입니다.

echo 'visit:'$site

변수 뒤에 문자열을 계속하려면 다음과 같이 하면 됩니다.

echo 'visit: '$site' rest of the sentence'

관련 정보