En bash
, utilisez la redirection <<<
d'une chaîne (un 'Here string'):
if grep -q abc_def_APP <<< $file
Dans d'autres coquilles, vous devrez peut-être utiliser:
if echo $file | grep -q abc_def_APP
J'ai mis mon then
sur la ligne suivante; Si vous voulez votre then
sur la même ligne, alors ajoutez ; then
après ce que j'ai écrit.
Notez que cette mission:
file=$abc_def_APP_13.4.5.2
est assez étrange; il prend la valeur d'une variable d'environnement ${abc_def_APP_13}
et ajoute .4.5.2
à la fin (il doit être un var var car on peut voir le début du script). Vous avez probablement voulu écrire:
file=abc_def_APP_13.4.5.2
En général, vous devez joindre les références aux variables contenant les noms de fichiers entre guillemets pour éviter des problèmes avec des espaces etc dans les noms de fichiers. Ce n'est pas critique ici, mais les bonnes pratiques sont de bonnes pratiques:
if grep -q abc_def_APP <<< "$file"
if echo "$file" | grep -q abc_def_APP
Pourquoi le #! ligne dire ksh? – jman
Quelle est la valeur de 'file' supposée être? Je soupçonne que vous pourriez avoir un problème sur l'ERS de cette mission. – chepner