curl command not executing via shell script in bash

Vivek Kumar picture Vivek Kumar · Aug 24, 2015 · Viewed 46.3k times · Source

I'm learning shell scripting! for the same I've tried downloading the facebook page using curl on ubuntu terminal.

t.sh content

vi@vi-Dell-7537(Desktop) $ cat t.sh 
curlCmd="curl \"https://www.facebook.com/vivekkumar27june88\""
echo $curlCmd
($curlCmd) > ~/Desktop/fb.html

Getting error when running the script as

vi@vi-Dell-7537(Desktop) $ ./t.sh 
curl "https://www.facebook.com/vivekkumar27june88"
curl: (1) Protocol "https not supported or disabled in libcurl

But if the run the command directly then it is working fine.

vi@vi-Dell-7537(Desktop) $ curl "https://www.facebook.com/vivekkumar27june88"
<!DOCTYPE html>
<html lang="hi" id="facebook" class="no_js">
<head><meta chars.....

I will appreciate if anyone let me know the mistake I am doing in the script.

I've verified that curl library have ssl enabled.

Answer

Abhishek picture Abhishek · Aug 24, 2015

A command embedded within a parenthesis runs as a sub-shell so your environment variables will be missing.

Try eval:

curlCmd="curl 'https://www.facebook.com/vivekkumar27june88' > ~/Desktop/fb.html"
eval $curlCmd