拡張/評価せずに変数を含む文字列をエコーし​​ます。

拡張/評価せずに変数を含む文字列をエコーし​​ます。

私はどこでも見ました。エコと印刷を試みました。一重引用符と二重引用符を試してみました。しかし、データを解析して変数に割り当て、変数が含まれているかどうかを評価したいと思います。次に、変数をワイルドカードに置き換えてファイルを検索します。

例:

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

これは私の多くの失敗の少なくとも一つです。

PROMPT> file=blah.$DATE
PROMPT> test=$(echo "$file"|grep '\$')
PROMPT> echo $test
PROMPT>
PROMPT>

これは拡張に関連していることを知っていますが、修正する方法がわかりません。どんな助けでも大変感謝します。ありがとうございます!

ベストアンサー1

$date変数var内に必要な場合:

var='file.$date.txt'

これにより、変数内に$が保持されます。

$ echo "$var" | grep '\$'
file.$date.txt

おすすめ記事