![$ echo 'date`'에 무엇이 문제인지 알 수 없습니다.](https://rvso.com/image/109235/%24%20echo%20'date%60'%EC%97%90%20%EB%AC%B4%EC%97%87%EC%9D%B4%20%EB%AC%B8%EC%A0%9C%EC%9D%B8%EC%A7%80%20%EC%95%8C%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
다음 명령이 실행되면 어떤 일이 발생합니까? 이유와 해결 방법을 설명하세요.
$ echo ‘`date`’
답변1
달려가고 있는 것 같아요
echo '`date`'
(곧은 작은 따옴표에 주의하세요) 그리고 date
's'의 결과를 기대하고 있습니다. 쉘은 작은따옴표 안에 문자열을 확장하지 않습니다. 대신 큰따옴표를 사용해야 합니다.
echo "`date`"
아니면 그냥 떨어뜨리거나
echo `date`
이 모든 것은 다음과 같습니다.
date
그러나 껍질이 쪼개지고 얼룩지는 것을 제외하고 (에서 지적한 바와 같이)스테판 차젤라스), 기본적으로 공백이 축소됩니다.
답변2
게시된 대로, 바깥쪽 따옴표는 유니코드 U+2018 및 U+2019 문자입니다. 이는 일반적인 작은따옴표가 아니며 쉘에 특별한 의미가 없으며 단순히 에코됩니다.
$ echo ‘`date`’
‘Fri Apr 7 19:55:15 EEST 2017’
$
이 따옴표 안에는 쉘 명령 대체를 위한 백틱이 있습니다. 명령 date
이 실행되고 캡처된 출력이 문자열 을 대체합니다 date
.