2017-10-04 1 views
0

Ich habe ein Array, das einen Studenten Namen und drei Grad Partituren gilt:Wie schneidet man ein bestimmtes Feld aus einem Array im Bash Shell Scripting?

studentArray=([0]="John Doe":100:88:90) 

Mein Problem ist, wenn ich den Cut-Befehl in der Shell ausgeführt, wie

so
cut -d: -f1 /submit/studentGrades 

Es zeigt den gesamten Inhalt der Bash-Skript statt nur der Teil, den ich will, das ist der Name.

#!/bin/bash 

studentArray=([0]="John Doe" 

echo "${studentArray[0]}" 

exit 0 

Wenn ich Feld tue 2 statt wie so:

cut -d: -f2 /submit/studentGrades 

es zeigt nur die erste Klasse, die ich will, aber es zeigt immer noch den gesamten Inhalt des Bash-Skript.

Was mache ich falsch? Dies ist das erste Mal, dass ich mit Arrays in Bash Scripting arbeite.

Vielen Dank für Ihre Hilfe im Voraus!

+0

Warum verwenden Sie 'cut' auf einer Script-Datei? – Barmar

+0

Wir müssen Arrays für fünf Studenten zusammen mit den Noten erstellen. Dann müssen wir den Namen und alle drei Noten jedes Schülers extrahieren, um den Durchschnitt zu finden und sie dann anzuzeigen. – jshakil

+0

Warum tun Sie das, indem Sie schneiden, anstatt auf das Array direkt im Skript zuzugreifen, das es zuweist? – Barmar

Antwort

1

Ich bin mir nicht sicher, warum Sie versuchen, eine Skriptdatei als Datendatei zu verwenden.

Verwenden grep die Linie, die Sie vor dem Schneiden möchten:

grep '^studentArray=' /submit/studentGrades | cut -d: -f1 
Verwandte Themen