J’ai donc commencé à apprendre UNIX hier et j’essaie de créer un script de base qui demande vos coordonnées (nom, adresse, numéro de téléphone), puis les stocke dans un fichier appelé details.out.
Ça me rend dingue! C’est tellement simple / basique, mais je ne peux pas le faire, et je suis resté coincé pendant une bonne heure maintenant …
après beaucoup de recherches sur Google et de recherche, je ne peux toujours pas trouver la réponse. C’est ce que j’ai fait jusqu’à présent et je me demandais où je me trompais!
echo Please type your first and last name read $firstname $lastname echo Please type in your address read $address echo Please type in your phone number read $phone echo Thank you very much! echo The details have been stored in '"details.out"' cat >> details.out <<EOF Name: echo $firstname echo $lastname Address: echo $address Phone Number: echo $phone EOF
Lorsque je lis “details.out”, il s’affiche comme suit: Nom: echo Adresse: echo Numéro de téléphone: echo
Toute aide serait appréciée! (et si vous essayez de me diriger dans les bonnes directions par opposition à me donner la réponse, je vous en serais reconnaissant!)
PS J’utilise Putty si ça aide!
read
(ou déclarez des variables), ne mettez pas $ sigil sur les noms de variables echo "$var"
echo
“Double quote” chaque extension, et tout ce qui pourrait contenir un caractère spécial, par exemple. “$ var”, “$ @”, “$ {tableau [@]}”, “$ (commande)”. Utilisez des guillemets simples pour créer quelque chose de littéral, par exemple. «Coûts 5 USD». Voir http://mywiki.wooledge.org/Quotes http://mywiki.wooledge.org/Arguments et http://wiki.bash-hackers.org/syntax/words
Chaque fois que vous mettez un $
avant un nom de variable, vous récupérez la valeur actuelle de cette variable. Vous ne voulez pas faire cela dans votre commande de read
. Les variables sont vides au démarrage du script, les valeurs vides sont placées à la place de $firstname
et $lastname
et read
est appelée sans arguments, ce qui entraîne la lecture d’une ligne et son rejet.
Définition d’une variable avec affectation:
var=value
Définir une variable avec read
:
read var
Ni l’un ni l’autre n’utilisent $var
car ils ne veulent pas regarder la valeur actuelle, ils veulent la remplacer.
Il n’y a pas non plus besoin de ces echo
dans l’hérédoc. Ils ne sont pas en position de commande, ils seront donc simplement copiés dans le cadre de l’entrée dans cat
.