test
é uma bash builtin - chamado sem argumentos, como no seu exemplo, ele não faz nada 1 .
Seu script de shell não é chamado de test
mas test.sh
, portanto, para executá-lo, você precisa digitar:
$ test.sh
No entanto, esse não é o único problema. Seu comando ln -s ./test.sh /usr/bin
não está fazendo exatamente o que você pensa - ./test.sh
é um caminho relativo e links para caminhos relativos são relativos à localização do link, não em relação a onde você estava quando você digitou o comando.
Você realmente quer algo como:
$ ln -s /home/babbleshack/test.sh /usr/bin
... em que ponto as coisas deveriam funcionar.
1 Tecnicamente, sem sucesso não faz nada (em outras palavras, retorna um código de erro diferente de zero). Se isso não significa nada para você, não se preocupe - não é importante para os propósitos desta resposta.