![bash 쉘에서 "" 안에 ""를 넣어야 한다면 어떻게 해야 합니까? [폐쇄]](https://linux55.com/image/72206/bash%20%EC%89%98%EC%97%90%EC%84%9C%20%22%22%20%EC%95%88%EC%97%90%20%22%22%EB%A5%BC%20%EB%84%A3%EC%96%B4%EC%95%BC%20%ED%95%9C%EB%8B%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F%20%5B%ED%8F%90%EC%87%84%5D.png)
다음 명령이 포함된 쉘 스크립트가 있습니다.
if [ -e "./${name}/\"$1\"_page.json" ];
나는 다른 많은 언어와는 달리 \"
작동하지 않는다는 것을 알았습니다.
어떻게 해야 합니까?
답변1
삼중 큰따옴표를 사용하시겠습니까?
if [ -e "./${name}/"""$1"""_page.json" ];
이것은 것이다
${name}
및$1
실제 값으로 바꾸십시오.
참고:
archemar@mybox:~/tmp7$ foo=bar
archemar@mybox:~/tmp7$ f2=deux
archemar@mybox:~/tmp7$ echo "${f2}/"""${foo}"""/test.php"
deux/bar/test.php
archemar@mybox:~/tmp7$ echo "${f2}/\"${foo}\"/test.php"
deux/"bar"/test.php
지적했듯이 원하는 결과는 약간 불분명합니다.
답변2
작은따옴표만 사용하세요.
if [ -e './${name}/"$1"_page.json' ];
원하거나 확장하는 경우 작은따옴표를 사용할 수 ${name}
없습니다 $1
.강한 참조와 약한 참조의 차이점을 알아보려면 이 기사를 읽어보세요.
그러나 매개변수를 확장하려면 문자열을 연결하는 것이 좋습니다.
if [ -e './'"${name}"'"'"$1"'"_page.json' ];
문자가 많아 '
읽기가 거의 불가능하지만.