2016-04-26 6 views
1

In meinem Bash-Skript frage ich den Benutzer nach einem gewünschten Verzeichnis und durchlaufe dann die Dateien in diesem Verzeichnis, um einen Befehl für Dateien auszuführen, dessen Name mit einer bestimmten Zeichenfolge übereinstimmt. Dies ist eine for-Schleife mit verschachtelten if-Anweisungen und ich erhalte immer wieder Fehler für Syntax oder Berechtigungen, egal wie ich die Dinge nach anderen Beispielen ändere, die ich in Syntax Guides und Stack Overflow finde.Bash-Skript for-Schleife mit geschachteltem if-Statement

process_files(){ 
    for i in /home/path/* 
    do 
    if $i == "string" 
    then 
     <command> 
    fi 
    done 
} 
process_files 
+0

'if $ i ==" String "' ist ungültige Shell-Syntax. –

+0

Sie werden ermutigt, die Fehler zu zeigen und uns eine Vorstellung von den erwarteten Ergebnissen zu geben. Beispiele sollten idealerweise so laufen wie sie sind. – jdv

Antwort

1

Versuchen

if [ "$i" = "string" ] 
then 

... 
-1

Wenn Sie bash tun, wenn in einer Zeile, die Sie verwenden müssen,. ZB wenn $ i == "string"; dann echo "string"; fi. Gleiches gilt für die For-Schleife.

+1

Dies beantwortet eine Frage, die nicht gestellt wurde, ohne das Problem zu identifizieren. – chepner

+0

Im ursprünglichen Beitrag von OP war dies ein Problem. – ToonZ

+0

Nein, das war nur ein Formatierungsproblem in der Post. – chepner

Verwandte Themen