Se você precisar de $date
dentro da variável var:
var='file.$date.txt'
Isso manterá o $ dentro da variável:
$ echo "$var" | grep '\$'
file.$date.txt
Eu pesquisei em todos os lugares. Tentei eco e imprimir. Tentei aspas simples e duplas. Mas eu analisei os dados e os atribui a uma variável e gostaria de avaliá-la se houver uma variável dentro dela. Em seguida, substituirei a variável por um curinga e procure o arquivo.
Exemplo:
var="file.$DATE.txt"
### Where it goes wrong- Needs to identify that $DATE is within the $var varaible.
test=$(echo "$var"|grep '\$')
if [[ $test ]]
then
### I would use whatever fix is discovered here as well
test=$(echo $test|sed 's/\$[a-zA-Z]*/\*/')
fi
### (Actually pulling from remote machine to local)
cat $test > /tmp/temporary.file
Aqui está pelo menos um dos meus muitos fracassos:
PROMPT> file=blah.$DATE
PROMPT> test=$(echo "$file"|grep '\$')
PROMPT> echo $test
PROMPT>
PROMPT>
Eu sei que tem algo a ver com a expansão, mas não tenho ideia de como resolvê-lo. Qualquer ajuda seria apreciada. Obrigado!
Use aspas simples ao redor das variáveis para evitar a expansão do shell. O exemplo echo '$file'
não expandirá $file
.
Editar após comentário abaixo:
Você pode escapar do sinal $
na variável var
com var="file.\$DATE.txt"
.