我到处搜寻。尝试回显和打印。尝试使用单引号和双引号。但是我已经解析了数据并将其分配给一个变量,然后想对其进行评估以了解其中是否包含变量。然后,我将使用通配符替换变量并搜索文件。
例:
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>
我知道它与扩展有关,但不知道如何解决。任何帮助,将不胜感激。谢谢!
抱歉,测试变量是否在“ var”变量中定义。各种各样的嵌套。
—
krmarshall87 '16
通过立即删除似乎是变量的任何内容(无需我首先关心),并用通配符交换它,我找到了解决困境的方法:
—
krmarshall87 '16
sed 's/\${*[a-zA-Z0-9_%]*}*/\*/'
$date
?。为此用途:var='file.$DATE.txt'
。使用var时要扩展日期?我确定您需要解释您的要求。