Bash 변수를 HTML로

Bash 변수를 HTML로

폴더의 파일 이름을 가져오고 내 홈 페이지에 해당 파일 이름에 대한 HTML 링크를 만드는 스크립트가 있습니다. 스크립트는 다음과 같습니다.

#!/bin/bash  
list_dir=`ls -t /path/to/dir/`
for i in $list_dir   
do  
echo `'<a href="/path/to/dir/$i">$i</a>' >> /var/www/index.html`   
done

하지만 코드가 제출되었는지 확인했지만 var/www/index.html변수는 아직 교체되지 않았습니다. 이 문제를 해결하는 방법에 대한 제안 사항이 있습니까?

답변1

'작은따옴표와 큰따옴표가 모두 존재하는 이유가 있습니다 ". 매개변수는 큰따옴표 내에서 확장되지만 작은따옴표 내에서는 확장되지 않습니다.

echo "<a href=\"/path/to/dir/$i\">$i</a>" >> /var/www/index.html

답변2

문제는 변수를 작은따옴표로 묶었다는 것입니다. 작은따옴표로 묶인 경우 변수는 리터럴로 처리됩니다. 큰따옴표로 변경해 보세요.

"에코..." 주위의 체크 표시도 제거해야 합니다. 이러한 하위 쉘을 실행하면 다음 오류가 발생합니다.

a: line 5: <a href="/path/to/dir/file1">file1</a>: No such file or directory

a: line 5: <a href="/path/to/dir/file2">file2</a>: No such file or directory

이 스크립트는 필요한 작업을 수행합니다.

#!/bin/bash
list_dir=`ls -t /path/to/dir/`
for i in $list_dir
do
echo "<a href=\"/path/to/dir/$i\">$i</a>" >> /var/www/index.html
done

관련 정보