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.
    0
    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
      0