변수를 설정했고 or 로 인쇄 site
해야 한다고 생각하세요 . 하지만 작은따옴표를 사용하여 무언가를 작성하고 변수를 사용하고 싶다면 어떻게 해야 할까요?echo
printf
예:
$ 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'