Search code examples
bashuser-inputstdin

bash doesn't execute commands after for loop


I wrote a small installation script for my utilities set:

#!/bin/bash

set=(move-volume move-db dmove-copy-id dmove-config dmove-nginx-proxy)

for item in ${set[*]}
do
    wget -q -nv https://raw.githubusercontent.com/pavelsr/dmove/master/$item -O /usr/local/bin/$item
    chmod +x /usr/local/bin/$item
done

dmove-config
dmove-copy-id
echo "Setup complete! Do not forget to dmove-copy-id if you updated config"

Running installation script like:

curl -sSL https://raw.githubusercontent.com/pavelsr/dmove/master/install-dmove | sudo bash

But it just download files and doesn't execute code after done.

What could be wrong?


Solution

  • Replace

    dmove-config
    

    with

    dmove-config </dev/tty
    

    to force dmove-config reading from tty and not waiting for data from your curl command.