0

我有用数据填充表格的脚本。我需要在另一个表 STATS 中记录它何时开始加载以及何时完成加载。

所以在第一个脚本中,我将时间戳存储到变量中:

**script1.sh**
    dtMODEL=$(date +"%d-%b-%y %H.%M.%S.%N %p")
    ./load_table.sh source1
    ./load_table.sh source2
    ./record_table_load_stats.sh MODEL $dtMODEL

**record_table_load_stats.sh**
   #! /bin/bash
   #
   . /etc/profile.d/oracle.sh

   MODEL=$1
   START_DATE=$2
   echo $MODEL
   echo $START_DATE
   sqlplus -s username/password<< !
   /* this is where I wanna use START_DATE variable and populate table*/

当我做:

echo $dtMODEL

15-Oct-13 13.56.46.677879674 PM

但是当我将它传递给record_table_load_stats.sh时,它会回显

15-Oct-13

为什么?

4

1 回答 1

1

shell 评估的工作方式是,它首先替换变量的内容,然后将命令行解析为空格分隔的参数。要覆盖它,您必须引用变量内容中的空格。

最方便的是在周围加上"引号$dtMODEL,即

./record_table_load_stats.sh MODEL "$dtMODEL"
于 2013-10-15T17:57:07.710 回答