Taking input in a script and making sure there's only one parameter

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















I'm currently working on an assignment where I have a script that is basically just getting to learn using grep with different regex's.



I have the script written except for the first part where I am asked to take a file as input and then the script runs based on that file.



I have the prompt for input, the read command after, the grep commands. Everything works fine, I just need to implement an if statement I believe that would run the script if it only has 1 parameter given.
- The assignment says that the script should only run if 1 and only 1 parameter is given otherwise it should display an error message.



Thanks,










share|improve this question

















  • 2





    Well, here's how to How to check if there are no parameters provided to a command - see if you can modify it ;)

    – steeldriver
    Mar 16 at 19:36

















1















I'm currently working on an assignment where I have a script that is basically just getting to learn using grep with different regex's.



I have the script written except for the first part where I am asked to take a file as input and then the script runs based on that file.



I have the prompt for input, the read command after, the grep commands. Everything works fine, I just need to implement an if statement I believe that would run the script if it only has 1 parameter given.
- The assignment says that the script should only run if 1 and only 1 parameter is given otherwise it should display an error message.



Thanks,










share|improve this question

















  • 2





    Well, here's how to How to check if there are no parameters provided to a command - see if you can modify it ;)

    – steeldriver
    Mar 16 at 19:36













1












1








1








I'm currently working on an assignment where I have a script that is basically just getting to learn using grep with different regex's.



I have the script written except for the first part where I am asked to take a file as input and then the script runs based on that file.



I have the prompt for input, the read command after, the grep commands. Everything works fine, I just need to implement an if statement I believe that would run the script if it only has 1 parameter given.
- The assignment says that the script should only run if 1 and only 1 parameter is given otherwise it should display an error message.



Thanks,










share|improve this question














I'm currently working on an assignment where I have a script that is basically just getting to learn using grep with different regex's.



I have the script written except for the first part where I am asked to take a file as input and then the script runs based on that file.



I have the prompt for input, the read command after, the grep commands. Everything works fine, I just need to implement an if statement I believe that would run the script if it only has 1 parameter given.
- The assignment says that the script should only run if 1 and only 1 parameter is given otherwise it should display an error message.



Thanks,







bash scripting






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 16 at 19:33









GrappleGrapple

82




82







  • 2





    Well, here's how to How to check if there are no parameters provided to a command - see if you can modify it ;)

    – steeldriver
    Mar 16 at 19:36












  • 2





    Well, here's how to How to check if there are no parameters provided to a command - see if you can modify it ;)

    – steeldriver
    Mar 16 at 19:36







2




2





Well, here's how to How to check if there are no parameters provided to a command - see if you can modify it ;)

– steeldriver
Mar 16 at 19:36





Well, here's how to How to check if there are no parameters provided to a command - see if you can modify it ;)

– steeldriver
Mar 16 at 19:36










1 Answer
1






active

oldest

votes


















2














Within a script $# will expand to the number of positional parameters. We can use that to check if the correct number of options have been passed, and exit right away if not:



#!/bin/sh

if [ "$#" -ne 1 ]; then
printf 'ERROR! You must provide one and only one argument!n' >&2
exit 1
fi


Places you can read about this:



2.5.1 Positional Parameters



The if Conditional Construct



2.7.2 Redirecting Output






share|improve this answer

























    Your Answer








    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "106"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: false,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: null,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f506719%2ftaking-input-in-a-script-and-making-sure-theres-only-one-parameter%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    2














    Within a script $# will expand to the number of positional parameters. We can use that to check if the correct number of options have been passed, and exit right away if not:



    #!/bin/sh

    if [ "$#" -ne 1 ]; then
    printf 'ERROR! You must provide one and only one argument!n' >&2
    exit 1
    fi


    Places you can read about this:



    2.5.1 Positional Parameters



    The if Conditional Construct



    2.7.2 Redirecting Output






    share|improve this answer





























      2














      Within a script $# will expand to the number of positional parameters. We can use that to check if the correct number of options have been passed, and exit right away if not:



      #!/bin/sh

      if [ "$#" -ne 1 ]; then
      printf 'ERROR! You must provide one and only one argument!n' >&2
      exit 1
      fi


      Places you can read about this:



      2.5.1 Positional Parameters



      The if Conditional Construct



      2.7.2 Redirecting Output






      share|improve this answer



























        2












        2








        2







        Within a script $# will expand to the number of positional parameters. We can use that to check if the correct number of options have been passed, and exit right away if not:



        #!/bin/sh

        if [ "$#" -ne 1 ]; then
        printf 'ERROR! You must provide one and only one argument!n' >&2
        exit 1
        fi


        Places you can read about this:



        2.5.1 Positional Parameters



        The if Conditional Construct



        2.7.2 Redirecting Output






        share|improve this answer















        Within a script $# will expand to the number of positional parameters. We can use that to check if the correct number of options have been passed, and exit right away if not:



        #!/bin/sh

        if [ "$#" -ne 1 ]; then
        printf 'ERROR! You must provide one and only one argument!n' >&2
        exit 1
        fi


        Places you can read about this:



        2.5.1 Positional Parameters



        The if Conditional Construct



        2.7.2 Redirecting Output







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Mar 16 at 21:31

























        answered Mar 16 at 19:44









        Jesse_bJesse_b

        14.4k33574




        14.4k33574



























            draft saved

            draft discarded
















































            Thanks for contributing an answer to Unix & Linux Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f506719%2ftaking-input-in-a-script-and-making-sure-theres-only-one-parameter%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown






            Popular posts from this blog

            How to check contact read email or not when send email to Individual?

            Displaying single band from multi-band raster using QGIS

            How many registers does an x86_64 CPU actually have?