文件名不是在bash
问题描述:
用下划线正确打印 “_” 我用这文件名不是在bash
DATE_FOLDER=$(date +"%b-%d-%a-%G")
FILENAME="HOME_$date1.tar.gz"
echo $BACKUP_DESTINATION/$DATE_FOLDER/$FOLDERNAME_$FILENAME
我的输出是
home/May-04-Wed-2011/HOME_May-04-0718PM-2011.tar.gz
但如果我用 “ - ” 代替下划线 “_”
echo $BACKUP_DESTINATION/$DATE_FOLDER/$FOLDERNAME-$FILENAME
那么我的输出中是正确的
/home/May-04-Wed-2011/vmware-HOME_May-04-0717PM-2011.tar.gz
答
_
是变量名的有效字符,并且$FOLDERNAME_
不存在。
echo "$BACKUP_DESTINATION/$DATE_FOLDER/${FOLDERNAME}_$FILENAME"
答
的问题是在这里:HOME_$date1.tar.gz
和这里:_$FILENAME
。 如果您使用_$
则$
已转义。
不过,你可以这样做:\\_$
。 然后你逃过_
与\
和$
将被解释为你习惯它。
+0
建议的解决方案实际上正常工作,但解释是肥料负荷。 -1 – tripleee 2015-01-19 18:55:32
谢谢,我没注意到 – Mahakaal 2011-05-05 14:11:20
非常感谢! – 2012-06-08 16:43:03