je suis tombé sur le problème suivant: J'écris un script bash Linux qui effectue les opérations suivantes:BASH: caractère de nouvelle ligne bande de chaîne (lecture en ligne)
- ligne Lire fichier
- Strip le caractère
\n
de la fin de la ligne juste lire - Exécutez la commande qui est là
Exemple: commands.txt
ls
ls -l
ls -ltra
ps as
L'exécution du fichier bash devrait obtenir la première ligne, et l'exécuter, mais alors que la présente \n
, le shell sorties juste « command not found: ls » Cette partie du script 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
J'ai commenté que vous avez les choses que j'ai essayé avant de demander SO. Des solutions? Je briser mon cerveau pour les deux dernières heures au cours de cette ...
vous avez simplement essayé seul '$ de coût média? – knittl
Bien sûr que j'ai fait. Mais il est dit "commande introuvable: ls " –
Tout ce qui est nécessaire est: 'myline =" $ (echo -n "$ line") "' (avec des devers back au lieu de '$()' si vous voulez) – jnylen