私はどこでも検索しました。エコーして印刷してみました。一重引用符と二重引用符を試しました。しかし、私はデータを解析してそれを変数に割り当てたので、その中に変数があるかどうかを評価したいと思います。次に、変数をワイルドカードに置き換えて、ファイルを検索します。
例:
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
ここに私の多くの失敗のうちの少なくとも1つがあります:
Prompt> file=blah.$DATE
Prompt> test=$(echo "$file"|grep '\$')
Prompt> echo $test
Prompt>
Prompt>
私はそれが拡張と関係があることを知っていますが、それをどのように解決するかわかりません。任意の助けいただければ幸いです。ありがとう!
必要な場合$date
変数var内:
var='file.$date.txt'
これにより、変数内に$が保持されます。
$ echo "$var" | grep '\$'
file.$date.txt
変数を単一引用符で囲んで、シェルの展開を防ぎます。例_echo '$file'
_は_$file
_を展開しません。
以下のコメントの後に編集:
_$
_でvar
変数の_var="file.\$DATE.txt"
_記号をエスケープできます。