this post was submitted on 08 Dec 2024
13 points (93.3% liked)

Linux Questions

1262 readers
1 users here now

Linux questions Rules (in addition of the Lemmy.zip rules)

Tips for giving and receiving help

Any rule violations will result in disciplinary actions

founded 2 years ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 5 points 1 month ago* (last edited 1 month ago) (1 children)

I love bash's -x option for exactly this type of debugging. It prints out every command before running it, so you can see what is different about the command as the script is running it

bash -x my-script.sh

Off the top of my head, I'm guessing the inline shell command $( ... ) is eating your double quotes, and I bet you should escape them, particularly around username and password

[โ€“] [email protected] 1 points 1 month ago

Thanks for the suggestion.

set -x didn't reveal any errors, and the commands that it'the script is executing are as I expect them to be.

I did just discover, though, a possible cause for my issue: https://lemmy.thewooskeys.com/comment/520854