Checking for the correct number of arguments

前端 未结 3 499
一向
一向 2020-12-04 08:02

How do i check for the correct number of arguments (one argument). If somebody tries to invoke the script without passing in the correct number of arguments, and checking to

相关标签:
3条回答
  • 2020-12-04 08:49

    You can check the total number of arguments which are passed in command line with "$#" Say for Example my shell script name is hello.sh

    sh hello.sh hello-world
    # I am passing hello-world as argument in command line which will b considered as 1 argument 
    if [ $# -eq 1 ] 
    then
        echo $1
    else
        echo "invalid argument please pass only one argument "
    fi
    

    Output will be hello-world

    0 讨论(0)
  • 2020-12-04 08:54
    #!/bin/sh
    if [ "$#" -ne 1 ] || ! [ -d "$1" ]; then
      echo "Usage: $0 DIRECTORY" >&2
      exit 1
    fi
    

    Translation: If number of arguments is not (numerically) equal to 1 or the first argument is not a directory, output usage to stderr and exit with a failure status code.

    More friendly error reporting:

    #!/bin/sh
    if [ "$#" -ne 1 ]; then
      echo "Usage: $0 DIRECTORY" >&2
      exit 1
    fi
    if ! [ -e "$1" ]; then
      echo "$1 not found" >&2
      exit 1
    fi
    if ! [ -d "$1" ]; then
      echo "$1 not a directory" >&2
      exit 1
    fi
    
    0 讨论(0)
  • 2020-12-04 09:01

    cat script.sh

        var1=$1
        var2=$2
        if [ "$#" -eq 2 ]
        then
                if [ -d $var1 ]
                then
                echo directory ${var1} exist
                else
                echo Directory ${var1} Does not exists
                fi
                if [ -d $var2 ]
                then
                echo directory ${var2} exist
                else
                echo Directory ${var2} Does not exists
                fi
        else
        echo "Arguments are not equals to 2"
        exit 1
        fi
    

    execute it like below -

    ./script.sh directory1 directory2
    

    Output will be like -

    directory1 exit
    directory2 Does not exists
    
    0 讨论(0)
提交回复
热议问题