2017-10-05 19 views
0

Ich habe seit gestern Shell-Skripting gelernt. Ich möchte ein Skript erstellen, das die Mindestanzahl aller Zahlen in einer Textdatei zurückgibt. Das ist, was ich habe, so weit:Shell Script Neuling: "Befehl nicht gefunden"

#!/bin/bash 
file="example.txt" 
min=cat $file|head -1 
for i in $(cat $file); do 
    if [[ $min -gt $i ]]; then 
    min=$i 
    fi 
done 
echo $min 

ich in Zeile 3 einen Fehler halte, die sagt: „example.txt: Befehl nicht gefunden“.

+0

Dies sollte Ihnen den Einstieg: https://stackoverflow.com/questions/9449778/what-is-the-benefit-of-using-instead-of-backticks-in-shell-scripts – fvu

+0

kichert. .. Bleib dran, du wirst bald genug mit deiner Shell Freundschaft schließen. Sie möchten ein Lesezeichen setzen [** Bash Guide **] (http://mywiki.wooledge.org/BashGuide), [** Bash FAQ **] (http://mywiki.wooledge.org/BashFAQ) und [ ** Bash Pitfalls **] (http://mywiki.wooled.org/BashPitfalls). Eine Fülle von guten Informationen kann bei jedem gefunden werden. –

Antwort

0

Sie benötigen einen command substitution zu verwenden:

min=$(cat $file|head -1) 

Außerdem ist zu beachten, dass der cat Befehl nutzlos hier ist seit head einen Dateinamen akzeptiert. Es sollte sein:

min=$(head -1 "$file") 
+0

Vielen Dank! – Jaspreet

0

fügen Sie es in Backticks hinzu.

min=`cat $file|head -1` 
+0

Während Sie richtig sind, sollten Sie den Link im ersten Kommentar zur ursprünglichen Frage besuchen. –