我有一个脚本,可以获取文件夹中的文件名,并在我的主页上创建指向它们的 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