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.
Ah, I see.
I guess they get different contexts or something?(Edit: I re-read your post and this does not make any sense :)) What if you chain the ssh command and the curl using &&?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.