Remove uma pasta com o mesmo nome de uma variável de ambiente

0

Estava mexendo com um arquivo de propriedades log4j e acidentalmente criei uma pasta com o seguinte texto ${foo} No entanto, também tenho uma variável de ambiente chamada foo que aponta para uma pasta, portanto, se eu rm -rf "${foo}" remover a pasta $foo está apontando, em vez da pasta ${foo} . Como posso especificar para excluir a pasta no meu diretório atual usando um caminho relativo em vez de excluir a pasta para a qual a variável de ambiente aponta?

Aqui está o layout para ajudar a entender melhor

$foo = /home/user/bar

${foo} = /home/user/${foo}

    
por jgr208 16.12.2014 / 17:59

1 resposta

2

A interpolação de string faz com que isso aconteça. Há várias maneiras de impedir seletivamente que isso aconteça. O bash hackers wiki tem alguns bons exemplos , embora os detalhes possam variar se você não estiver realmente usando o bash. / p>

Em resumo, você pode evitar a interpolação com aspas simples ou pode escapar dos caracteres.

[me:~/work]$ export foo=bar
[me:~/work]$ echo $foo
bar
[me:~/work]$ echo "\${foo} is set to ${foo}"
${foo} is set to bar
    
por 16.12.2014 / 18:30