BASH: supprime les caractères de nouvelle ligne de la chaîne (ligne de lecture)

Je suis tombé sur le problème suivant: je suis en train d'écrire un Linux script bash qui fait ce qui suit:

  • Ligne de lecture à partir d'un fichier
  • Bande de la \n caractère de fin de ligne viens de lire
  • Exécuter la commande qui est là

Exemple:
commands.txt

ls
ls -l
ls -ltra
ps as

L'exécution du fichier bash doit obtenir la première ligne, et de l'exécuter, mais alors que le \n présent, l'enveloppe juste sorties de la commande "non trouvé: ls"
La partie du script qui ressemble à ceci

 read line

        if [ -n "$line" ]; then #if not empty line

                #myline=`echo -n $line | tr -d '\n'`
                #myline=`echo -e $line | sed ':start /^.*$/N;s/\n//g; t start'`

                myline=`echo -n $line | tr -d "\n"`
                $myline  #execute it

                cat $fname | tail -n+2 > $fname.txt
                mv $fname.txt $fname
        fi

Commenté vous avez des choses que j'ai essayé avant de demander. Toutes les solutions? Je suis brisant mon cerveau pour le dernier couple d'heures sur ce...

source d'informationauteur Bogdan Constantinescu