seulement pour les entiers parce que sinon c’est bien ==
-eq c'est pour forcer un contexte arithmétique, qui va avec -lt/-gt... qui n'ont pas d'équivalent pour les chaînes de caractères. Et pour les chaînes de caractères, ce n'est pas "==" mais "=" en shell POSIX. Ça pourrait paraître mauvais, mais dans la mesure où les espaces sont requis autour de l'opérateur de comparaison et proscrits autour de celui d'assignation, le risque de confusion est nul (pas comme en C).
Note que Perl a fait les choix inverses ("eq" pour les chaînes, "==" pour l'arithmétique), je passe donc assez régulièrement de l'un à l'autre sans plus de douleur que ça.
on utilise -a et -o
Usage découragé par POSIX à présent. Perso, je trouve cependant ça assez pratique pour combiner des tests composés, par ex. "[ -d dir/ -a ! "$flag1" ] && [ "$flag2" -o ! "$flag3" ]".
sauf que maintenant il faut utiliser $()
C'est beaucoup plus cohérent, puisqu'on récupère en fait la sortie d'un sous-shell "( ... )", de sorte que tu peux écrire "$(echo a; echo b; echo c)"
Pour le reste sur cette partie, d'autres on répondu mieux que je ne saurais le faire.
se résous avec systemctl list-dependencies --reverse foobar.service (trouvé dans les commentaires de son post);
Tu aurais du lire la suite, où il dit qu'il a justement besoin du contraire (dans le commentaire que conclut la première citation que j'ai faite) :
systemctl list-dependencies will tell you what is required for a service is started, and will partially help if you want to figure why a service wasn't started. The problem is I was trying to do the reverse. That is, I'm trying to create a battery.target that is just like graphical.target, except that certain things like tor.target, pcscd.target, etc., that tend to wake up the CPU more than 10 times a second aren't started (and in fact will stop them if I run "systemctl isolate battery.target"). I could do this by creating a battery.target file that included some conflicts, but apparently that caused something else to get shutdown, and that something else made fn-F5 and fn-F6 stop to configure the screen brightness (although xbacklight -set 5 still worked).
So what I really need is a "systemctl --verbose isolate battery.target" which tells me exactly which services it is starting up, and which services it is stopping, and why. Basically, what I need is something like "make -n -d" (although hopefully with a slightly better output format). Maybe there's a secret command option or environment variable or log file that will tell me all of this. But I've looked through all of the FAQ's and man pages I could find, and I couldn't find it.
[^] # Re: Portabilité et forçage
Posté par Ignatz Ledebur . En réponse à la dépêche Mise aux poings sur systemd. Évalué à 3. Dernière modification le 15 juin 2014 à 12:27.
-eq c'est pour forcer un contexte arithmétique, qui va avec -lt/-gt... qui n'ont pas d'équivalent pour les chaînes de caractères. Et pour les chaînes de caractères, ce n'est pas "==" mais "=" en shell POSIX. Ça pourrait paraître mauvais, mais dans la mesure où les espaces sont requis autour de l'opérateur de comparaison et proscrits autour de celui d'assignation, le risque de confusion est nul (pas comme en C).
Note que Perl a fait les choix inverses ("eq" pour les chaînes, "==" pour l'arithmétique), je passe donc assez régulièrement de l'un à l'autre sans plus de douleur que ça.
Usage découragé par POSIX à présent. Perso, je trouve cependant ça assez pratique pour combiner des tests composés, par ex. "[ -d dir/ -a ! "$flag1" ] && [ "$flag2" -o ! "$flag3" ]".
C'est beaucoup plus cohérent, puisqu'on récupère en fait la sortie d'un sous-shell "( ... )", de sorte que tu peux écrire "$(echo a; echo b; echo c)"
Pour le reste sur cette partie, d'autres on répondu mieux que je ne saurais le faire.
Tu aurais du lire la suite, où il dit qu'il a justement besoin du contraire (dans le commentaire que conclut la première citation que j'ai faite) :