2015-05-14 89 views
1

我是Shell腳本中的新手,我試圖將一個變量從子腳本導出到父腳本。下面是代碼,不幸的是它不工作。不知道是什麼問題。下面是代碼。將變量從一個shell腳本導出到bash中的另一個腳本中

我有一個腳本set-vars1.sh代碼如下

#!/bin/bash 
line_write="R" 
FLAG='' 
if [[ $line_write > " " && $line_write == "R" ]] 
then 
    echo "Exporting" 
    export FLAG=Y 
    #export $FLAG; 
elif [[ $line_write > " " && $line_write== "N" ]] 
    then 
    export FLAG=N 
fi 

EXIT_STATUS=-1 
exit $EXIT_STATUS 

我試圖從set-vars2.sh代碼調用,這是如下

#!/bin/bash 
./set-vars1.sh 
echo $FLAG 

當我嘗試運行set-vars2.sh我無法回顯標誌的值,並始終爲空。

您能否讓我知道這裏有什麼問題,以及我如何糾正這些問題。很久以來我一直在這個問題上頭痛。所以任何幫助將非常有幫助

+1

做一個'源/設置vars1.sh'或'。 。/ set-vars1.sh'使它們可用於shell! – iamauser

回答

2

使用source

source ./set-vars1.sh 

或者:

. ./set-vars1.sh 
#The first . is intentional 
+0

我嘗試了兩個選項,但仍然得到空白值,謝謝 – vikeng21

+0

@ vikeng21這是因爲您在'echo'打印標記之前退出。從'set-vars1.sh'刪除退出命令 而你缺少一個空間:'$ line_write ==「N」' – Jahid

+1

非常感謝。它在刪除退出狀態後工作。 – vikeng21

相關問題