2017-10-07 91 views
0

可有人請幫助我知道如何做到這一點:出口的bash變量

SCRIPT1:「xx.sh」低於

#!/bin/sh 
echo "Content-type: text/html" 
echo "" 
tr=$(mktemp -d) 
trr=$(echo $tr | awk '{split($0,array,"/")} END{print array[3]}') 
pud=$(echo "$trr" | awk '{split($0,array,".")} END{print array[2]}') 
mkdir $pud 
echo -e "123" > file 
mv file $pud/ #(briefly, I want to use this "file" in the script "yy.sh" for some other analysis. This is a webserver script snippet, based on my program, there could be many instances running at one time, hence "pud" has to be unique, and the "file" is unique for every instance too) 

echo "<html>" 
echo "<head>" 
echo "</head>" 
echo "<body>" 
echo "<form action=\"yy.sh\" method=\"GET\">" 
echo "<input type=\"submit\" value=\"Click me to get the results page.\">" 
echo "</form>" 
echo "</body>" 
echo "</html>" 

我想要做的就是這些行在第二個bash腳本「yy.sh」中獲取變量「pud」的值(「yy.sh」與「xx.sh」位於同一父目錄中)。有人可以幫助我知道如何做到這一點?

非常感謝!

+0

什麼是你想要的輸出? – batMan

+0

我已經編輯了腳本,請看一下,讓我知道如何做到這一點。謝謝!如果事情不清楚,請告訴我。 – Dipak

回答

0

我明白了,你需要一個唯一標誌將文件保存在一個獨特的目錄爲每個實例,以便您可以yy.sh遍歷所有這些目錄。

你可以試試這個:

dir="${pud}_`date +%s%N`" `date +%s%N` : will give you time in seconds and NanoSeconds since the epoch. 
mkdir "${dir}" 
echo -e "123" > file 
mv file $dir/ 

# Pass this file path to yy.sh as following 
sh yy.sh "${dir}/file" 

在你yy.sh 使用$1指由xx.sh傳遞的文件路徑。 $1表示第一個命令行參數,$2表示第二個等等..

例如,

#yy.sh 
echo "Hello World" >> "$1" #This will append "hello world" to file whose path was passed by xx.sh 
+0

謝謝!但爲了清楚起見,每個實例都會調用「yy.sh」,因此,必須在每個實例中查找在一個實例中創建的唯一目錄中的「文件」。這就是爲什麼,我需要以某種方式使「yy.sh」尋找特定的「$ {dir}」。你能告訴我如何將「$ {dir}」的值傳遞給「yy.sh」?或者如果您有任何其他方式來做到這一點,請讓我知道。由於 – Dipak

+0

校正在以前的評論 - 「所以,在一個實例所做的唯一的目錄,必須尋找了‘’在那** **例如」 – Dipak

+0

感謝:-)文件,但是,做「'SH yy.sh」 $ {DIR}/file'」執行‘’中‘xx.sh yy.sh’我想用HTML形式做在我上面的腳本,即單擊該按鈕時,則‘yy.sh’和執行的「'$ {DIR}/file'」的值出現在「yy.sh」。有沒有辦法做到這一點,而不在「xx.sh」執行「yy.sh」請讓我知道,如果我不清楚。非常感謝! – Dipak