Na przykład, czy mogę ustawić:
gb = cd /media/Dan/evolution
... aby za każdym razem, gdy wykonuję gb
bash, mogę cd
przejść do tego konkretnego katalogu?
Znalazłem coś online: alias
polecenie. Ale wydaje się, że nie może wykonać powyższej pracy.
Czy można to zrobić? W jaki sposób?
alias gb='cd /media/Dan/evolution'
posix
skarga, więc nie tylkobash
.Odpowiedzi:
po prostu wpisz:
Aby to ustawienie było trwałe (aby pozostało po ponownym uruchomieniu lub otwarciu innej konsoli), dodaj ten wiersz do pliku ~ / .bashrc (zakładając, że używasz bash jako domyślnej powłoki)
źródło
Alternatywa dla aliasingu
Definiuje to funkcję powłoki gb, która nie przyjmuje żadnych argumentów i wykonuje cd / media / Dan / evolution. Podobnie jak w przypadku innych sugestii, można to dodać do ~ / .bashrc
źródło
type gb
będzie działać, jeśli jest to alias lub funkcja.{ echo 'true() { : ; }' >./script ; . ./script ; command -V true ; command -V /usr/bin/true ; }
-true is a shell function\n/usr/bin/true is /usr/bin/true
-\n
znaki były dosłownie znakami nowej linii na wyjściu.Jest to możliwe i
alias
jest to polecenie, którego szukasz. Na przykładalias ll="ls -l"
w bash pozwoli Ci pisaćll
zamiastls -l
. Uwaga: podczas ustawiania aliasu nie są używane spacje.man alias
może być również przydatne.źródło
Alternatywnie można napisać program w języku C, który wywołuje żądane polecenie i zapisać go w katalogu / usr / bin.
Aby go skompilować, przejdź do katalogu, w którym zapisano źródło (w bash) i uruchom (możesz potrzebować sudo):
Po dalszych badaniach tutaj zdałem sobie sprawę, że po prostu wrzucenie twojego polecenia
system()
nie zadziała dla poleceń wbudowanych w bash. Dlatego musisz utworzyć instancję interaktywnej bash i powtórzyć do niej swoje polecenia. Jest to po prostu zbyt skomplikowane i prawdopodobnie bezużyteczne, chyba że chcesz, powiedzmy, skrócić wywołanie skryptu powłoki (some_script
zamiastsh ~/radgeRayden/Scripts/some_script
).Odwołanie do funkcji system ()
źródło
sh -c "cd /media/Dan/evolution"
który nie działa. Wskazówka: podpowłokacd
Pomijając kwestie / subshell, jaka jest korzyść z zawinięcia polecenia powłoki w programie c, kiedy można równie łatwo (lub łatwiej) umieścić to polecenie w skrypcie powłoki?