Es nervt mich schon seit sehr langer Zeit und ich habe es wirklich satt. Es gibt zum Beispiel ein Skript namens Testscript, das zwei Verzeichnisse vergleicht. Im Unterricht kann der Professor einfach Folgendes eingeben:
testscript dir1 dir2
um die Ausgabe zu erhalten, muss ich jedoch vor dem Testskript ./ hinzufügen und die Eingabetaste drücken. Dann geben Sie dir1 und dir2 in der nächsten Zeile ein
Wie hat der Prof das gemacht? Hat es etwas mit der Bashrc-Sache zu tun? Ich verstehe nie, wie das funktioniert. Wenn es damit zusammenhängt, erklären Sie es mir bitte in einfacher Sprache, da ich neu bei Linux bin. Danke!
Antwort1
Sie müssen der PATH
Variablen das Verzeichnis mit Ihrem Skript hinzufügen:
export PATH="$PATH:/path/to/dir"
oder Sie können sogar hinzufügenaktuellVerzeichnis zum PATH
:
export PATH="$PATH:."
Letzteres hat einigeSicherheitsnachteilobwohl.
Antwort2
Eine andere Möglichkeit hierfür besteht darin, Ihrer Bashrc-Datei einen Alias hinzuzufügen:
vim ~/.bashrc
So sieht meine Bashrc-Datei aus:
# .bashrc
alias coredb='psql -h 172.x.x.x -U jboss jbossdb'
alias psql='psql -h 172.x.x.x -U rkah portal_db'
alias opendb='psql -h 172.x.x.x -U rkah portal_db'
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
alias menu='bash ./menuScript.sh'
alias vi='vim'
Wenn Sie nachsehen, wo „Alias“ steht, können Sie es genau so hinzufügen. Sie würden beispielsweise Folgendes eingeben:
alias testscript='bash ./testscript.sh'
Antwort3
Sie sollten die folgende Zeile am Ende Ihrer .bashrc
Datei einfügen:
PATH=$PATH:.
Dazu können Sie diesen Befehl eingeben:
echo "PATH=$PATH:." >> ~/.bashrc
Sie sollten dann eine neue Shell starten, damit es funktioniert
Antwort4
Eine andere Alternative, die Sie in Betracht ziehen könnten, besteht darin, diese speziellen ausführbaren Skripte und Programme in einem Verzeichnis zu sammeln und dieses in die PATH-Anweisung einzufügen. Auf diese Weise müssten Sie den gefürchteten Punkt '.' in der PATH-Variable nicht verwenden, aber es würde trotzdem das gewünschte Ergebnis erzielen.