Utworzymy skrypt o nazwie funkcje, jeśli uruchomimy skypt nic się nie stanie,
ale tworząc link symboliczny o nazwie new lub delete zostaną wykonane odpowiednio
funkcje nowy i delete.
Skrypt zawiera instrukcję case, która operuje na nazwie skryptu za pomocą
polecenia $(basename $0) gdzie $0 to nazwa skryptu, polecenie basename
usuwa ./ z nazwy skryptu.
Konstrukcja $(basename $0) jest opcjonalna, oznacza to, że jeśli skrypt
znajduje się w ścieżce $PATH i można go wykonać wpisując jego nazwę beż podania
ścieżki to możemy użyć case "$0" in
Standardowo skrypty umieszczam w katalogu bin w katalogu domowym, następnie
katalog bin dodaję w pliku stardowym powłoki do zmiennej $PATH. W przypadku
powłoki bash jest to plik .bashrc a dla powłoki zsh jest to plik .zshrc.
Dobrym zwyczajem jest sprawdzenie, czy katalog ~/bin istnieje zanim go dodamy
do ścieżki.
if [ -d ~/bin ]; then
export PATH=$PATH:~/bin
fi
można to zapisać w jednej linii bez konstrukcji if:
[ -d ~/bin ] && export PATH=$PATH:~/bin
Skrypt funkcje:
function nowy() {
echo funkcja nowy
}
function delete() {
echo funkcja delete
}
case $(basename $0) in
new)
nowy
;;
delete)
delete
;;
esac
Utworzenie linków symbolicznych:
ln -s funkcje new ln -s funkcje delete
Wywołanie skryptu
./new funkcja nowy
./delete funkcja delete
| Date: 2020-10-24T13:48:25+02:00 |