J'essaie de faire fonctionner une instruction "if" dans [Bash][1] (avec [Ubuntu][2]) :
#!/bin/bash
s1="hi"
s2="hi"
if ["$s1" == "$s2"]
then
echo match
fi
J'ai essayé plusieurs formes de l'instruction if
, en utilisant [["$s1" ; == "$s2" ;]]
, avec et sans guillemets, en utilisant =
, ==
et -eq
, mais j'obtiens toujours l'erreur suivante :
[hi : command not found
J’ai consulté divers sites et tutoriels et les ai copiés, mais cela ne fonctionne pas. Qu’est-ce que je fais de travers ?
En fin de compte, je veux dire si $s1
contient $s2
, alors comment puis-je le faire ?
Je viens juste de travailler sur la partie espaces... :/ Comment dois-je dire contient ?
J'ai essayé
if [[ "$s1" == "*$s2*" ]]
mais ça n'a pas marché.
[1] : http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29 [2] : http://en.wikipedia.org/wiki/Ubuntu_%28operating_system%29
Je n'ai pas accès à une boîte linux pour le moment, mais [ est en fait un programme (et un buildin bash), donc je pense que vous devez mettre un espace entre [ et le premier paramètre.
Notez également que l'opérateur d'égalité des chaînes de caractères semble être un simple =.