Bash variável em html

1

Eu tenho um script que obtém os nomes dos arquivos em uma pasta e cria um link HTML para eles na minha página inicial. Aqui está o script:

#!/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

Mas quando eu verifico o var/www/index.html , o código é enviado, mas as variáveis não foram substituídas. Algum conselho sobre como consertar isso?

    
por tyler 27.05.2013 / 02:49

2 respostas

3

Existe uma razão pela qual ambas aspas simples ' e aspas duplas " existem. Os parâmetros são expandidos entre aspas duplas, mas não entre aspas simples.

echo "<a href=\"/path/to/dir/$i\">$i</a>" >> /var/www/index.html
    
por 27.05.2013 / 03:07
1

O problema é que você tem aspas simples envolvendo as variáveis. Suas variáveis são consideradas literais quando agrupadas por aspas simples. Tente trocá-los por aspas duplas.

Você também precisa remover os carrapatos em volta do "echo ...". Esses exec uma sub-shell que lhe dá este erro:

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

Este script faz o que você precisa:

#!/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
    
por 27.05.2013 / 03:07