Skip to content

Instantly share code, notes, and snippets.

@nitsas
Last active March 26, 2016 16:47
Show Gist options
  • Save nitsas/2429580 to your computer and use it in GitHub Desktop.
Save nitsas/2429580 to your computer and use it in GitHub Desktop.
while loop, for loop, backticks και ελληνικό ερωτηματικό
# Ό,τι είναι μετά από δίεση είναι σχόλια, τα υπόλοιπα κώδικας.
# Το αρχείο τρέχει έτσι όπως είναι, το δοκίμασα.
# Ένα απλό while loop:
i="0"
while [ $i -lt 4 ]
do
echo $i
i=$[$i + 1]
done
# Το ίδιο while loop σε μια γραμμή:
i=0; while [ $i -lt 4 ]; do echo $i; i=$[$i + 1]; done
# Το ερωτηματικό (ακριβώς όπως και η νέα γραμμή) χωρίζει διαφορετικές εντολές και τις εκτελεί
# την μία μετά την άλλη. Μπορείς π.χ. να το χρησιμοποιήσεις έτσι:
cd .. ; ls ; echo lalalala
# Προσοχή! Πιο πάνω δεν υπάρχει ερωτηματικό ανάμεσα στο do και το echo $i επειδή έτσι δουλεύει το do
# (θέλει arguments μια τουλάχιστον εντολή), δεν ξέρω γιατί. Αν βάλεις ερωτηματικό ανάμεσα στο do και
# το echo θα βγάλει -bash: syntax error near unexpected token ";".
# Αν βάλεις μια εντολή μέσα σε backticks αυτή εκτελείται και τα αποτελέσματά της μπαίνουν ακριβώς στο
# σημείο που υπήρχε η εντολή.
lala=`ls -l`
# Στην ουσία στην προηγούμενη γραμμή λες θέλω στην μεταβλητή lala τα αποτελέσματα της εντολής ls -l.
# for loop
result=`ls`
for i in $result
do
echo "$i is either a file or a directory"
done
# το i in $result χωρίζει τα περιεχόμενα της $result σε λέξεις (τα χωρίζει όπου βρει κενό) και τα βάζει με τη
# σειρά στο i (όταν το i παίρνει τιμή δεν βάζεις μπροστά $, όταν θέλεις να χρησιμοποιήσεις την τιμή του βάζεις).
# Το ίδιο for loop λίγο διαφορετικά:
for i in `ls`; do
echo "$i is either a file or a directory"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment