La descripción de $2 en la programación de shell es correcta
codewalker@codehost:/tmp
$cat. /test
#!/bin/bash
echo $#
echo $1
echo $2
codewalker@codehost:/tmp
$ ./test 1 2 3
三
1
2
Después de leer este ejemplo, comprenderá que $2 significa el segundo parámetro y $ # es el número de parámetros que devuelve un * * *.