I’ve got this command in a bash script:

TEST=$(curl -o /dev/null -s -k -w "%{http_code}" -u "${USERNAME}:${PASSWORD}" "${URL}/dashboard/")
echo "${TEST}" #debug

When the script runs, the output is “000”.

When I run the same curl command from the shell, the output is “200” (which is correct, since the URL is valid).

I verified that the USERNAME, PASSWORD, and URL vars are being passed to the subshell.

I’d appreciate it if you could point out what I’m doing wrong here. :)

UPDATE: This has been solved.

  • Mike Wooskey@lemmy.thewooskeys.comOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    6 days ago

    I’m not sure how to chain these 2 commands with &&, because the SSH command is being put in the background with &.

    This doesn’t work:

    SSH_CMD="ssh -N -L ${LOCAL_PORT}:127.0.0.1:${REMOTE_PORT} ${REMOTE_USER}@${REMOTE_HOST}"
    $SSH_CMD & && TEST=$(curl -o /dev/null -s -k -w "%{http_code}" -u "${USERNAME}:${PASSWORD}" "${URL}/dashboard/")
    SSH_PID=$!
    SSH_RESULT=$?
    echo $TEST
    

    Perhaps I don’t need it in the background - the goal was to establish the tunnel and then continue with the script without it hanging until the ssh command is canceled.