Więc bawię się w moim .bashrc, tworząc różne aliasy i bawię się moim monitem. Próbuję teraz utworzyć alias, który przeniesie się do określonego katalogu, utworzę nowy katalog na podstawie daty i utworzę nowy plik. Wszystko w jednym aliasie. Oto co zrobiłem ...
export DATE="$( date +%d-%b )"
alias hw='cd ~/Java/Homework/257; mkdir $DATE; cd $DATE; vim'
Teraz, gdy wychodzę i uruchamiam hw Client.java
, powinienem przejść do ~/Java/Homework/257/27-Jan/
i otworzyć nowy plik o nazwie Client.java w vimie. Wszystko działa pięknie, ale zmienna daty nie działa poprawnie. Przenosi mnie do katalogu ~ / Java / Homework / 257 i tworzy dwa katalogi. Jeden o nazwie data, a drugi o nazwie +% d-% b i umieszcza plik Client.java w katalogu daty.
Myślałem, że mój eksport zmiennych daty po prostu nie działa, ale kiedy wpisuję $ DATE w wierszu polecenia, daje mi to 27-sty, tak jak powinno. Czy ktoś wie, co może być przyczyną tego? Mój przyjaciel zrobił coś bardzo podobnego, używając nieco innego formatu formatu dla daty i jego prace były w porządku. Jedyne, co mam inne na moim komputerze, to ukończenie bashu od homebrew, ale nie wiem, jak to wpłynęłoby na moją randkę ...
cd wherever && mkdir "$DATE" && cd "$DATE" && vim
(tzn. Użyj&&
zamiast;
), łatwiej będzie zauważyć, kiedy jedno z tych poleceń środkowych nie powiedzie się (reszta nie uruchomi się, a jedno z nich (ostatnie uruchomienie) prawdopodobnie napisało komunikat o błędzie ).Spróbuj zdefiniować go jako funkcję w
.bashrc
lub.alias
:Zapewnia to, że data jest określana za każdym razem, gdy używasz polecenia, a nie tylko podczas logowania / uruchamiania bash.
źródło
go
wystarczyWzdłuż linii innych odpowiedzi: musisz wykonać polecenie daty. Prawdopodobnie najprostszym rozwiązaniem byłoby zmienić swoje cytaty na tyki:
źródło
go
tym ciągiem literalnym. Kiedy chcesz wykonać kod, możesz umieścić go w tylnych paskach lub użyć$(...)
formalizmu wspomnianego w innych odpowiedziach.