
私はどこでも見ました。エコと印刷を試みました。一重引用符と二重引用符を試してみました。しかし、データを解析して変数に割り当て、変数が含まれているかどうかを評価したいと思います。次に、変数をワイルドカードに置き換えてファイルを検索します。
例:
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
答え2
シェルの拡張を防ぐには、変数の周りに一重引用符を使用してください。例はecho '$file'
拡張されません$file
。
コメントした後に編集されました:
$
intvar
変数にエスケープ記号を使用できますvar="file.\$DATE.txt"
。