Chinaunix
标题:
[问题]这个变量替换是怎么个过程?
[打印本页]
作者:
jinl
时间:
2008-02-07 20:52
标题:
[问题]这个变量替换是怎么个过程?
目录下有如下的文件:
2008020201.dmp 2008020202.dmp 2008020203.dmp
想得到"20080202*.dmp"这样的值
如下处理:
TIME=`date +%Y%m%d`
得到了20080202
FILE_NAME=${TIME}"*.dmp"
echo $FILE_NAME
希望得到 20080202*.dmp
结果得到了 2008020201.dmp 2008020202.dmp 2008020203.dmp
如果改为 FILE_NAME=${TIME}*.dmp
那么结果是正确的。
想问一下,当后面的字符串中的*加了""后,是怎么会自动被替换的?
作者:
dreammaker
时间:
2008-02-08 03:36
不会吧,你用的是什么shell?
作者:
jinl
时间:
2008-02-08 10:44
环境: aix 5.2 + bash 3.00.16
今天重新测试的结果是:
huang@F85_cz /home/huang/test>unset var1
huang@F85_cz /home/huang/test>unset var2
huang@F85_cz /home/huang/test>echo $var1
huang@F85_cz /home/huang/test>echo $var2
huang@F85_cz /home/huang/test>ls
2008020801.dmp 2008020802.dmp 2008020803.dmp
huang@F85_cz /home/huang/test>var1=`date +%Y%m%d`
huang@F85_cz /home/huang/test>echo $var1
20080208
huang@F85_cz /home/huang/test>var2=${var1}*.dmp
huang@F85_cz /home/huang/test>echo $var2
2008020801.dmp 2008020802.dmp 2008020803.dmp
huang@F85_cz /home/huang/test>unset var2
huang@F85_cz /home/huang/test>var2=${var1}"*.dmp"
huang@F85_cz /home/huang/test>echo $var2
2008020801.dmp 2008020802.dmp 2008020803.dmp
huang@F85_cz /home/huang/test>var2=${var1}'*.dmp'
huang@F85_cz /home/huang/test>echo $var2
2008020801.dmp 2008020802.dmp 2008020803.dmp
huang@F85_cz /home/huang/test>
复制代码
不管加不加 " "或者 '',都会自动扩展
作者:
zhao3stones
时间:
2008-02-08 13:12
FILE_NAME=${TIME}"\*.dmp"
或者
FILE_NAME=${TIME}'*.dmp'
作者:
jinl
时间:
2008-02-08 21:31
原帖由
zhao3stones
于 2008-2-8 13:12 发表
FILE_NAME=${TIME}"\*.dmp"
或者
FILE_NAME=${TIME}'*.dmp'
\*转义,结果是字符串里面多了个\
''上面一个帖子里,我已经列举了,没有作用
作者:
jinl
时间:
2008-02-08 23:49
知道问题在哪儿了。
echoo "$var2"就得到需要的结果了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2