Erreur bash

Bonjour,

j'ai tapé cette commande,

java -jar file.jar << ( sleep 5 ; echo "3" ; sleep 1 ; echo "www.site0.eu" ; sleep 1 ; echo "www.modsec.com" ; sleep 1 ; echo "80"  )


mais j'ai cette erreur
bash: Erreur de syntaxe près du symbole inattendu " ( "

svp, aidez moi à corriger l'erreur.
merci

2 réponses

  1. Contributeur
    Salut,

    En fait non, tu n'as pas tapé la bonne commande, la bonne est celle-ci :

    java -jar file.jar < <( sleep 5 ; echo "3" ; sleep 1 ; echo "www.site0.eu" ; sleep 1 ; echo "www.modsec.com" ; sleep 1 ; echo "80"  )


    L'erreur de syntaxe est minime à voir :
    commande1 < <(commande2)


    Il faut un espace entre le 1er chevron et le 2nd, et pas d'espace entre le 2nd chevron et la parenthèse.
    1. Merci beaucoup,
      en fait j'ai une version, plus propre qui utilise la builtin coproc
      mais ça me donne pas la même résultat. (un retour directement du prompt)

      #!/bin/bash
      coproc java -jar WOF.jar
      exec 3<&${COPROC[0]}
      Reg="Choose Interface$"
      while true;do read -d ':' -u 3 r;[[ "$r" =~ $Reg ]] && break;done
      echo "3" >&${COPROC[1]}
      Reg="LOCK PROFILE \(Website\) FOR PASSIVE ENGINE$"
      while true;do read -d ':' -u 3 r;[[ "$r" =~ $Reg ]] && break;done
      echo "www.site0.eu" >&${COPROC[1]}
      Reg="ENTER WAF-BOX URL$"
      while true;do read -d ':' -u 3 r;[[ "$r" =~ $Reg ]] && break;done
      echo "www.modsec.com" >&${COPROC[1]}
      Reg="ENTER PORT NO$"
      while true;do read -d ':' -u 3 r;[[ "$r" =~ $Reg ]] && break;done
      echo 80 >&${COPROC[1]}
      exec 3<&-
      wait


      je voudrais savoir pourquoi ?, ou si vous pouvez m'aider à utiliser "expect" pour faire le même script
      merci