Une condition if / else dans les scripts de shell Linux
Je voudrais avoir l'équivalence de la suivante dans une ligne si/d'autre condition.
$maxline=`cat journald.conf | grep "#SystemMaxUse="`
if [ $maxline == "#SystemMaxUse=" ]
then
sed 's/\#SystemMaxUse=/SystemMaxUse=50M/g' journald.conf > journald.conf2
mv journald.conf2 journald.conf;
else
echo "This file has been edited. You'll need to do it manually."
fi
Je suis d'essayer de mettre ceci en une seule ligne de commande. Jusqu'à présent, j'ai obtenu tout cela, mais l'autre partie de la commande. Voici ce que j'ai jusqu'à présent...
maxline=`cat journald.conf | grep "#SystemMaxUse="` && if [ $maxline == "#SystemMaxUse=" ]; then sed 's/\#SystemMaxUse=/SystemMaxUse=50M/g' journald.conf > journald.conf2 && mv journald.conf2 journald.conf; fi
Alors, comment puis-je inclure la portion de code ci-dessus dans ma commande? Je vous remercie pour votre aide à l'avance.
source d'informationauteur Joshua Strot
Vous devez vous connecter pour publier un commentaire.
Il regarde comme si vous étiez sur la bonne voie. Il vous suffit d'ajouter l'instruction else après le ";" à la suite de la "puis" instruction. Aussi je voudrais diviser la première ligne de la deuxième ligne par un point-virgule au lieu de se joindre avec des "&&".
Également dans votre script d'origine, lors de la déclaration de maxline vous avez utilisé le dos-tiques """ au lieu des apostrophes "'", ce qui pourrait causer des problèmes.
Ce n'est pas une réponse directe à la question, mais vous pouvez simplement utiliser l'OU-opérateur