2017-10-07 1 views
0

Kann mir bitte jemand helfen zu wissen, wie dies zu tun:Export bash Variable durch HTML-Formular Methode

script1: „xx.sh“ hat diese Zeilen unter

#!/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>" 

Was will ich tun Erhalte den Wert der Variablen "pud" im zweiten Bash-Skript "yy.sh" ("yy.sh" befindet sich im selben übergeordneten Verzeichnis wie "xx.sh"). Kann mir bitte jemand helfen, das zu tun?

Vielen Dank!

+0

Was ist Ihre gewünschte Ausgabe? – batMan

+0

Ich habe das Skript bearbeitet, bitte schauen Sie und lassen Sie mich wissen, wie das gemacht werden könnte. Vielen Dank! Wenn etwas nicht klar ist, lass es mich wissen. – Dipak

Antwort

0

Ich sehe, Sie brauchen einen Uniquifier, um die Datei in einem eindeutigen Verzeichnis für jede Instanz zu speichern, so dass Ihr yy.sh über alle diese Verzeichnisse iterieren kann.

Sie können dies versuchen:

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" 

In Ihrem yy.sh Verwenden $1 den Dateipfad von xx.sh weitergegeben zu verweisen. $1 bedeutet erste Befehlszeile Parameter, $2 würde bedeutet, zweitens und so weiter ..

Eg.

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

Danke! aber um es klar zu stellen, wird "yy.sh" für jede Instanz aufgerufen, also muss das eindeutige Verzeichnis, das in einer Instanz erstellt wurde, in jeder Instanz nach der "Datei" gesucht werden. Deshalb muss ich irgendwie "yy.sh" nach dem spezifischen "$ {dir}" suchen lassen. Können Sie mir bitte sagen, wie ich den Wert von "$ {dir}" an "yy.sh" weitergeben kann? Oder wenn Sie eine andere Möglichkeit haben, lassen Sie es mich bitte wissen. Danke – Dipak

+0

Korrektur in vorherigem Kommentar - "so, das einzigartige Verzeichnis, das in einer Instanz gemacht wird, muss nach der" Datei "in ** dieser ** Instanz gesucht werden" – Dipak

+0

Danke :-), aber, machend "' sh yy.sh " $ {dir}/file' "führt" yy.sh "in" xx.sh "aus. Ich würde es gerne mit dem HTML-Formular wie in meinem obigen Skript machen, dh wenn auf die Schaltfläche geklickt wird, wird" yy.sh "ausgeführt und Der Wert von "$ {dir}/file'" ist in "yy.sh" vorhanden. Gibt es eine Möglichkeit, dies zu tun, ohne "yy.sh" in "xx.sh" auszuführen. Bitte lassen Sie mich wissen, wenn nicht klar, vielen Dank! – Dipak