title: mysqldump: Couldn't find table: "|"
body: <p>I try to execute exp file:</p>
  
  <pre><code>#!/usr/bin/expect
  
  # mysql credentials and connection data
  current_db_name='webui_dev'
  new_db_name='db_2013'
  db_host='localhost'
  db_user='root'
  db_pass=''
  
  
  # using a here-document to pass commands to expect. 
  # (the commands could be stored in a file as well)
  expect &lt;&lt;EOF
    log_user 0
    spawn mysqldump -h "$db_host" -u "$db_user" -p "$current_db_name" | mysql -h "$db_host" -u "$db_user" -p "$new_db_name"
    expect "password:"
    send "$db_pass\r"
    log_user 1
    expect eof
  EOF
  </code></pre>
  
  <p>I execute if with <code>-f</code> flag, and I get an error: <code>mysqldump: Couldn't find table: "|"</code></p>
  
  <p>if I try this approach</p>
  
  <pre><code>exp_internal 1
    spawn sh -c  "mysqldump -h \"$db_host\" -u \"$db_user\" -p \"$current_db_name\" | mysql -h \"$db_host\" -u \"$db_user\" -p \"$new_db_name\" "
  </code></pre>
  
  <p>I get an output</p>
  
  <pre><code>expect: option requires an argument -- f
  usage: expect [-div] [-c cmds] [[-f] cmdfile] [args]
  parent: waiting for sync byte
  parent: telling child to go ahead
  parent: now unsynchronized from child
  spawn: returns {81914}
  
  expect: does "" (spawn_id exp7) match glob pattern "password:"? no
  
  expect: does "Enter password: " (spawn_id exp7) match glob pattern "password:"? yes
  expect: set expect_out(0,string) "password:"
  expect: set expect_out(spawn_id) "exp7"
  expect: set expect_out(buffer) "Enter password:"
  send: sending "\r" to { exp7 }
  
  Enter password: expect: timed out
  </code></pre>