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

前端 未结 2 861
离开以前
离开以前 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.

提交回复
热议问题