2017-05-10 2 views
0
if ! grep $1 'dict'; then 
firstword=$1 
firstletter=${firstword:0:1}; 
echo $firstletter 

else 
    echo "hello" 
fi 

Ich bin mir nicht sicher, ob es grep ist, die ausgeführt wird, aber wenn der Fall ist, dass das Wort Now in der Datei ist dict es das Wort Now auf die Standardausgabe druckt. Wenn ich Noww einfüge und Noww nicht drinstecke, wird es einfach N ausdrucken. Was veranlasst es, Now auszudrucken?grep Befehl ausgeführt wird in if-Anweisung

Antwort

1

Was bewirkt, dass "Jetzt" ausgedruckt wird?

grep druckt Now aus, denn das ist, was grep standardmäßig tut: es druckt Eingabezeilen, die dem Muster entsprechen. Wenn Sie dies nicht wünschen, verwenden Sie die Option -q. Dann stellt es nur den Rückgabestatus ein, der sich if interessiert.

(von man grep auf einem Linux-System):

-q, --quiet, --silent 
     Quiet; do not write anything to standard output. Exit 
     immediately with zero status if any match is found, even 
     if an error was detected... 
+0

Ah danke, aus irgendeinem Grund habe ich nicht, dass in den Optionen. – Kippet

+0

Wenn diese Antwort Ihre Bedürfnisse erfüllt. Sie sollten die Hilfe mit "Antwort annehmen" lieber mit "Danke in Kommentar" bewerten. :) –

Verwandte Themen