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

関連情報