xingyang023 发表于 2010-4-25 19:59:34

关于脚本中使用变量的问题

大家好!
    我刚学习linux,我写了个自动备份数据的脚本,其中用了一个变量如:DAY_TAG='date +"%Y-%m-%d"'
想按照日期生成日志文件的名称,但是如果,date 和 + 中没有空格的话,变量没有按预期的生成日期串,如果有空格的话,脚本就闪了一下没有执行。请大家帮忙解决。在此先谢谢大家了。

haulm 发表于 2010-4-26 04:11:36

# DAY_TAG=`date +"%Y-%m-%d"`
# echo $DAY_TAG
2010-04-26
# DAY_TAG=`date +"%Y-%m-%d"`
# echo "内容">$DAY_TAG
# ls
2010-04-26

xingyang023 发表于 2010-4-26 08:50:51

公社版主,您好,首先感谢您,我的脚本代码是这样的,我用您的提示用了,还是不行,麻烦您看看错到哪里?非常感谢!   
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/10g
export PATH=$ORACLE_HOME/bin:$PATH
DAY_TAG='date +"%Y-%m-%d"'
rman target sys/oracle@orcl as sysdba nocatalog msglog '/u01/tmp/backuplog/db_backup_$DAY_TAG.log'<<EOF>/dev/null
run{
allocate channel d1 type disk;
backup incremental level 0 database tag 'L0_dbf_bak' format '/u01/tmp/backup/fullL0_%U_%T.bak' plus archivelog tag 'L0_arc_bak' format '/u01/tmp/arc/fullL0_%U_%T.bak';
release channel d1;
}
EOF

xingyang023 发表于 2010-4-26 08:53:45

公社版主,您好,首先感谢您,我的脚本代码是这样的,我用您的提示用了,还是不行,麻烦您看看错到哪里?非常感谢!(不好意思上面写错了)   
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/10g
export PATH=$ORACLE_HOME/bin:$PATH
DAY_TAG='date +"%Y-%m-%d"'
rman target sys/oracle@orcl as sysdba nocatalog msglog /u01/tmp/backuplog/db_backup_$DAY_TAG.log<<EOF>/dev/null
run{
allocate channel d1 type disk;
backup incremental level 0 database tag 'L0_dbf_bak' format '/u01/tmp/backup/fullL0_%U_%T.bak' plus archivelog tag 'L0_arc_bak' format '/u01/tmp/arc/fullL0_%U_%T.bak';
release channel d1;
}
EOF

jiangtao9999 发表于 2010-4-26 09:13:49

` 是 ~ 那个的引号。他包含的才会被当成命令被执行
jiangtao@Gentoo ~/temp/aaaa $ DAY_TAG=`date +"%Y-%m-%d"`
jiangtao@Gentoo ~/temp/aaaa $ echo $DAY_TAG
2010-04-26
jiangtao@Gentoo ~/temp/aaaa $ DAY_TAG='date +"%Y-%m-%d"'
jiangtao@Gentoo ~/temp/aaaa $ echo $DAY_TAG
date +"%Y-%m-%d"
jiangtao@Gentoo ~/temp/aaaa $

xingyang023 发表于 2010-4-26 09:25:19

公社版主、超级版主v2,非常感谢你们,问题解决!祝大家工作愉快!再次说声谢谢!
页: [1]
查看完整版本: 关于脚本中使用变量的问题