Antworten:
$ 1 (oder $ 2, $ 3 ...) sollen die Argumente sein, die einem Skript gegeben werden.
Hier ist ein Beispielskript:
#!/bin/bash
echo "\$1 is now $1"
echo "\$2 is now $2"
echo "\$3 is now $3"
Und die Beispielausgabe
jaba@lappy:/tmp$ ./example.sh
$1 is now
$2 is now
$3 is now
jaba@lappy:/tmp$ ./example.sh 1 2 3
$1 is now 1
$2 is now 2
$3 is now 3
$ 1 ist das Argument, das für das Shell-Skript übergeben wurde.
Angenommen, Sie rennen
./myscript.sh hello 123
dann
$ 1 wird hallo sein
$ 2 werden 123 sein
In Ihrem Fall gibt $ 1 die Standard-Anmeldeshell aus, die verwendet wird, weil dieses Argument an ein Skript übergeben wurde, das Ihre Anmeldeshell ausführt. Wenn Sie jedoch in der aktuellen Sitzung ein eigenes Skript schreiben und ausführen, sind $ 1, $ 2, ... Parameter, die Sie an Ihr Skript senden.