So führen Sie ein Bash-Skript aus, ohne ./ einzugeben

So führen Sie ein Bash-Skript aus, ohne ./ einzugeben

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 PATHVariablen 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 .bashrcDatei 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.

verwandte Informationen