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