Eu procurei em todos os lugares. Tentei ecoar e imprimir. Tentei aspas simples e duplas. Mas eu analisei os dados e os atribuí a uma variável e gostaria de avaliá-los se houver uma variável dentro dela. Em seguida, substituirei a variável por um curinga e procurarei 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 uma das minhas muitas falhas:
PROMPT> file=blah.$DATE
PROMPT> test=$(echo "$file"|grep '\$')
PROMPT> echo $test
PROMPT>
PROMPT>
Eu sei que isso tem algo a ver com expansão, mas não tenho idéia de como resolver isso. Qualquer ajuda seria apreciada. Obrigado!
$date
? Para essa utilização:var='file.$DATE.txt'
. Para expandir a data em que var é usado? Estou certo de que você precisa explicar o que está perguntando.sed 's/\${*[a-zA-Z0-9_%]*}*/\*/'
Respostas:
Se você precisa
$date
dentro da variável var:Isso manterá o $ dentro da variável:
fonte
Use aspas simples em torno de variáveis para impedir a expansão do shell. O exemplo
echo '$file'
não será expandido$file
.Edite após o comentário abaixo:
Você pode escapar do
$
sinal davar
variável comvar="file.\$DATE.txt"
.fonte