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 WooskeyOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    6 days ago

    Thanks for the suggestions.

    The script is pulling the values of USERNAME and PASSWORD from a .env. I added debug echo $USERNAME $PASSWORD in the script and it shows the correct values, so the script is pulling the values correctly and storing them in the vars correctly. I also added that echo to the subshell command, like:

    TEST=$(echo $USERNAME)
    echo $TEST
    

    …and the result was the correct USERNAME.

    The script does begin with #!/bin/bash.

    echo $PATH; which curl produces identical results when run from the shell and the script.