2013-10-15 45 views
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 

爲什麼?

+0

我需要通過整個時間戳:10月15日 - 13 13.56.46.677879674 PM – Angelina

回答

1

shell評估的工作方式是首先替換變量的內容,然後將命令行解析爲以空格分隔的參數。要覆蓋這個,你必須引用變量內容中的空格。

最方便的就是加「引號$dtMODEL,即

./record_table_load_stats.sh MODEL "$dtMODEL" 
相關問題