Search code examples
linuxbashshellcurlgnome-terminal

curl command not executing via shell script in bash


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.


Solution

  • 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