Je ne veux pas écrire le fichier manuellement, alors j'ai créé un script Shell. Existe-t-il un moyen d'écrire et de sauvegarder le fichier automatiquement sans que l'utilisateur n'appuie sur les touches?
Sudo nano blah
#write stuff to file
#save file
#continue
^ Ce sera dans un fichier * .sh
Ou existe-t-il un autre moyen de créer un fichier texte simple dans un script?
Pour des séquences de commandes plus complexes, vous devriez envisager d'utiliser la commande cat
avec un ici document . Le format de base est
command > file << END_TEXT
some text here
more text here
END_TEXT
Il existe deux comportements légèrement différents selon que l’étiquette END_TEXT est entre guillemets ou non:
étiquette non citée : le contenu est écrit après les développements habituels du shell
étiquette entre guillemets : le contenu du document ici est traité littéralement, sans les extensions habituelles de Shell
Par exemple, considérons le script suivant
#!/bin/bash
var1="VALUE 1"
var2="VALUE 2"
cat > file1 << EOF1
do some commands on "$var1"
and/or "$var2"
EOF1
cat > file2 << "EOF2"
do some commands on "$var1"
and/or "$var2"
EOF2
Les résultats sont
$ cat file1
do some commands on "VALUE 1"
and/or "VALUE 2"
et
$ cat file2
do some commands on "$var1"
and/or "$var2"
Si vous exportez des commandes Shell à partir de votre script, vous voulez probablement le formulaire cité.
Il n’est pas nécessaire de s’en prendre à un éditeur pour le faire.
Vous pouvez ajouter quelque chose à un fichier avec une simple commande echo. Par exemple
echo "Hello World" >> txt
Ajoutera "Hello world" au fichier txt
. si le fichier n'existe pas, il sera créé.
Ou si le fichier existe peut-être déjà et que vous voulez l'écraser
echo "Hello World" > txt
Pour la première ligne: et
echo "I'm feeling good" >> txt
echo "how are you" >> txt
Pour les lignes suivantes.
Au plus simple, le script .sh
pourrait simplement contenir un ensemble de commandes echo.