What does the “$#” special parameter mean in Bash?

前端 未结 2 862
离开以前
离开以前 2020-12-21 08:49

I\'ve come across the code

if [ $# -eq 1  ]; then
   echo \"usage: Phar ~/flashmem ~/archive\"
   exit
fi

I\'ve never come across [

相关标签:
2条回答
  • 2020-12-21 09:13

    The $# returns the number of parameters passed as arguments.

    #!/bin/bash
    echo $#
    

    Now

    ./testess.sh test1 test2 test3
    

    This returns 3.

    ./testess.sh test1 test2 test3 test4 test5
    

    This returns 5.

    So in your code, if $# equals the number one (just one argument passed), execute the echo command.

    0 讨论(0)
  • It Expands to the number of positional parameters in decimal.

    (copied from man bash, under Special Parameters).

    0 讨论(0)
提交回复
热议问题