Ich bin neu in Linux-Shell-Scripting, ist hier ein Ausschnitt ich verwenden möchte:Shell-Skript "Syntaxfehler:` done 'unerwartet. "
while IFS='' read -r line || [[ -n "$line" ]]; do
echo ""
echo ""
echo ""
echo "Counting the table : $line"
eval "hive -e 'select count(*) from $line'"
done < "$1"
ich es als count_row.sh nennen. Hier ist die Nutzung:
$ ./count_row.sh t1.csv > row.txt
t1.csv im Grunde enthält einige Tabelle den Namen jeder Zeile.
Ich habe einen Fehler unter:
Aber das Snippet ich hier entlehnt wurde als akzeptierte Lösung markiert, vermutlich wird es richtig geschrieben. Also was fehlt mir hier? Vielen Dank.
Gibt es einen besonderen Grund, warum Sie 'eval' hier verwenden? Es sieht nicht so aus, als wäre es notwendig. – ghoti
Sind Sie sicher, dass Sie den gleichen Code wie in Ihrer Frage ausführen? Ich kopiere es in ein neues Skript auf meiner Maschine und es funktioniert gut. (Ich musste 'hive' nur durch' echo' ersetzen) –
@shambalambala hive ist der Befehl, den ich in Hadoop verwenden muss, um die Abfrage auszuführen und die Zeilenanzahl der Tabelle zu erhalten – PasLeChoix