Próbuję zmienić alias polecenia, sudo shutdownale .profilenie mogę tego zrobić alias "sudo shutdown"="my command". Czy istnieje inny sposób na alias poleceń wieloskładowych w Uniksie?
Próbuję zmienić alias polecenia, sudo shutdownale .profilenie mogę tego zrobić alias "sudo shutdown"="my command". Czy istnieje inny sposób na alias poleceń wieloskładowych w Uniksie?
Odpowiedzi:
Nazwa aliasu znajduje się po lewej stronie, więc po prawej stronie możesz mieć dowolne wielowątkowe polecenie:
alias my_alias="multi worded command"
EDYCJA: Jeśli jednak naprawdę chcesz mieć aliasy z nazwami wielu słów - w twoim przykładzie, jeśli naprawdę chcesz, aby „zamknięcie sudo” było aliasem, możesz obejść ten problem, używając następującej funkcji aliasu (w podręczniku bash ):
A trailing space in value causes the next word to be checked for
alias substitution when the alias is expanded.
Jeśli więc nadal chcesz używać sudoinnych poleceń, ale nie shutdownmożesz i możesz sobie pozwolić na alias shutdowndo czegoś innego, możesz mieć:
alias sudo='sudo '
alias shutdown="echo nope"
Teraz sudo anything_elsebędzie działał zgodnie z oczekiwaniami (zakładając, że nie masz aliasu anything_else, ale jeśli go masz, nie działałby wcześniej); ale sudo shutdownbędzie równoważne sudo echo nopei wydrukuje ten ciąg.
alias cd="cd "z pojedynczych liter aliasów, alias X="<directory-with-long-name>"aby łatwiej przeskakiwać z miejsca na miejsce.
alias gti="git "alias lgo="log"
Cytat z: Bash: Spacje w nazwie aliasu
Dokumentacja Bash stwierdza: „W prawie każdym celu funkcje powłoki są lepsze niż aliasy”. Oto funkcja powłoki, która zastępuje lsi powoduje przesyłanie danych wyjściowych, morejeśli argument składa się z (tylko) -la.
ls() {
if [[ $@ == "-la" ]]; then
command ls -la | more
else
command ls "$@"
fi
}
Jako jedna linijka:
ls() { if [[ $@ == "-la" ]]; then command ls -la | more; else command ls "$@"; fi; }
Automatycznie wyjście rurowe:
ls -la
Wolę po prostu umieścić plik wykonywalny w / usr / local / bin (upewnij się, że jest na twojej ścieżce), który następnie zawiera polecenia, które chcę uruchomić. Nazwa skryptu byłaby poleceniem, które się pojawi. pamiętaj, aby chmod + x / usr / local / bin / your_script.
Tak więc skrypt można nazwać „zamknięciem”
Zawartość zamknięcia pliku to:
#!/bin/sh
sudo shutdown
To otwiera zupełnie nowy świat. Możesz wtedy mieć kilka poleceń lub nawet skrypt:
#!/usr/bin/env python
print "hi"
# more stuff. ....