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

问题是你用单引号包裹了变量。当用单引号括起来时,变量被视为文字。尝试将它们改为双引号。

您还需要删除“echo ...”周围的后面的勾号。这些执行子 shell 会给出以下错误:

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

相关内容