Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does the "$#" special parameter mean in Bash?

I've come across the code

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

I've never come across [ $# -eq 1 ]; before and I can't seem to find a meaning. What does it do?

like image 640
WhereAreYouSyntax Avatar asked Feb 14 '23 13:02

WhereAreYouSyntax


1 Answers

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.

like image 196
ederwander Avatar answered Feb 23 '23 08:02

ederwander