#!/bin/bash
# Tallennustiedoston nimi
file=~/.todolist
# Tämä päivä tekstinä. Esim. 2017-03-16
today=$(date +%Y-%m-%d)
# Jos komentoriviltä on annettu lisättävä teksti parametrina, käytetään sitä, muuten kysytään käyttäjältä.
newtext="$1"
if [ -z "$newtext" ]
then
  echo "Anna lisättävä tehtävä:"
  read newtext
fi
if [ -w $file ]
then
# Jos tallennustiedosto on olemassa ja siihen voi kirjoittaa, kirjoitetaan uusi rivi sen loppuun.
# Sen jälkeen luetaan tiedoston rivit järjestettynä muuttujaan ja tulostetaan takaisin tiedostoon.
  echo "$today: $newtext" >> $file
  todotext=$(sort $file)
  echo "$todotext" > $file
elif [ -r $file ]
then
# Jos tiedosto ei ollut kirjoitettavissa, mutta on olemassa (luettavissa), valitetaan oikeuksista.
  echo "Tiedosto $file ei ole kirjoitettavissa."
else
# Muussa tapauksessa luodaan tiedosto kirjoittamalla siihen (ainoa) rivi.
  echo "$today: $newtext" > $file
fi