J'utilise Mac. J'ai compilé un bytecode run
, il peut travailler sur une entrée de chaîne dans une ligne de commande comme:Les espaces ne sont pas reconnus de la même manière dans un fichier txt et dans une ligne de commande
./run "Here is a text input"
Pour tester run
, je vous écris inputs.txt
qui contient couper les lignes d'entrées, une ligne représente une entrée:
"input1"
"This is input 2"
"input 3"
Et, voici une test.sh
:
#!/bin/bash
while IFS='' read -r line || [[ -n "$line" ]]; do
echo "Text read from file: $line";
./run $line
done < inputs.txt
Le problème est que, un test échoue pour les lignes d'entrée qui contiennent de l'espace, bien que tester la même ligne dans la commande fonctionne.
Donc je suppose que l'espace n'est pas interprété de la même façon lorsqu'il est dans inputs.txt
et dans une ligne de commande.
Est-ce que quelqu'un sait quoi faire pour que les espaces dans inputs.txt
soient interprétés de la même manière que dans une ligne de commande? Peut-être devrais-je changer le format de inputs.txt
?
pourrait être un problème de devis. Débarrassez-vous des guillemets dans le fichier d'entrée, puis ajoutez-les au script: './run" $ line "' – jdigital