J'ai besoin de configurer un serveur avec peu de fichiers et je veux le faire par programme.
j'ai besoin de créer des fichiers disent /home/a.config, /var/spool/b.config, /etc/c.config
les fichiers ci-dessus ont un contenu (plusieurs lignes).
je veux créer UN script Shell capable de créer les trois fichiers avec plusieurs lignes (environ 10) . Je voudrais savoir comment utiliser la commande CAT pour le faire. (à l'intérieur du script shell).
je cherche quelque chose comme ça
echo " going to create /home/a.config"
cat "HOW CAN I HAVE MULTIPLE LINES HERE?? " > /home/a.config
merci
Vous pouvez utiliser un document here:
cat <<EOF >/home/a.config
first line
second line
third line
EOF
Vous pouvez en placer plusieurs dans le même script.
Ainsi:
#!/bin/bash
var="your text"
echo "simply put,
just so: $var" > a.config
Pour plus d'informations, voir Partie entrée/sortie de abs .
J'espère que cela t'aides.
fichier = "/ tmp/test.txt"
echo "Ajout de la première ligne"> $ file
echo "Ajout de la première ligne remplacée">> $ fichier
echo "Ajouter une deuxième ligne" >> $ fichier
echo "Ajouter une troisième ligne" >> $ fichier
fichier cat $
> pour ajouter/remplacer le contenu (ici le contenu actuel a été remplacé par la 2ème ligne)
>> à ajouter
Résultat
Ajout de la première ligne remplacée
Ajouter une deuxième ligne
Ajouter une troisième ligne
>\#!/bin/bash
>
>var="your text" <br>
>echo "simply put, <br>
>just so: $var" > a.config
Notez que vous devez également échapper certains caractères pour éviter qu'ils interfèrent avec ce que vous essayez de faire, par exemple $ `et" briseront une telle déclaration à moins d'être précédés d'une barre oblique inverse, c'est-à-dire\`\ $ ou \"
donc, si nous définissons ce qui suit:
var = "100"
les éléments suivants ne se comporteraient pas comme prévu:
echo "tout simplement,
il suffit de "prêter" US $ $ var "> a.config
mais ce qui suit fonctionnerait correctement:
echo "tout simplement,
juste\"prêtez-moi" US\$ $ var "> a.config
Si votre texte contient des variables telles que $ 1 ou $ HOMEDIR, elles sont normalement évaluées et remplacées par des valeurs réelles. Si vous voulez éviter que ceux-ci ne soient substitués, vous devez citer la chaîne de limite d'ouverture (EOF dans l'exemple ci-dessous) avec guillemet simple 'EOF'
, double guillemet "EOF"
ou la faire précéder d'une barre oblique inversée \EOF
La limite de la chaîne reste telle quelle. EOF
Ceci est particulièrement utile si vous écrivez des scripts Shell dans un fichier.
cat << 'EOF' >/etc/rc.d/init.d/startup
case $1 in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
pid=$(Tomcat_pid)
if [ -n "$pid" ]
then
echo "Tomcat is running with pid: $pid"
else
echo "Tomcat is not running"
fi
;;
esac
EOF
Voir Exemple 19.7 Substitution de paramètre désactivée dans Ici Documents