2017-06-07 1 views
1
#!/bin/bash 

# I get the newest file in Directory 

latest_file=$(ls -t | head -n 1) 
getAlldoublicate() 

# getting Token syntax error here getAlldoublicate() '{ 

{ 
Alldoublicate=$(tr -s ',' ' ' <latest_file | awk '{print $2" "$3" "$4}' | uniq -d) 

# here I try to find dublicate rows in csv 

} 
if [[ -s latest_file]] ; then 

# here I check if file is emty 

getAlldoublicate 
else 
cat "$latest_file" | mailx -s "$latest_file is empty" bla..`@bla 
fi 
+3

Könnten Sie bitte Ihren _actual_ code ohne Anmerkungen hinzufügen? – paddy

+4

Verwenden Sie [shellcheck.net] (http://shellcheck.net), um Syntaxfehler in Ihrem Shell-Code zu diagnostizieren. – mklement0

+0

Könnten Sie bitte Ihren Code formatieren und die Fehlersätze hinzufügen? – paul

Antwort

1

Ich denke, das ist dein Code.

#!/bin/bash 

# I get the newest file in Directory 
latest_file=$(ls -t | head -n 1) 

# getting Token syntax error here 
getAlldoublicate() 
{ 
    # here I try to find dublicate rows in csv 
    Alldoublicate=$(tr -s ',' ' ' < $1 | awk '{print $2" "$3" "$4}' | uniq -d) 
} 


if [[ -s $latest_file ]]; then 

# here I check if file is emty 
    getAlldoublicate $latest_file 
else 
    cat $latest_file | mailx -s "$latest_file is empty" bla.. @bla 
fi 

Drei Punkte müssen Sie beachten:

  1. function müssen zuerst vor der Verwendung zu sein definiert werden.
  2. Sie können die latest_file als Argument übergeben, wenn Sie getAlldoublicate aufrufen. Dann könntest du es unter $1 in der Funktion verwenden. ($0 steht für die Funktion, die sich selbst nennt).
  3. Es wäre besser, wenn Sie die How to Format Tutorials lesen, bevor Sie Fragen stellen.
Verwandte Themen