Donc, je déconne mon .bashrc de faire différents alias et de jouer avec mon invite. J'essaie maintenant de créer un alias qui se déplacera dans un répertoire spécifique, créera un nouveau répertoire en fonction de la date et créera un nouveau fichier. Tout en un alias. Voici ce que j'ai fait ...
export DATE="$( date +%d-%b )"
alias hw='cd ~/Java/Homework/257; mkdir $DATE; cd $DATE; vim'
Maintenant, si je sors et cours hw Client.java
il devrait entrer dans ~/Java/Homework/257/27-Jan/
et ouvrez un nouveau fichier appelé Client.java dans vim. Tout fonctionne à merveille, sauf que la variable de date ne fonctionne pas correctement. Cela me déplace dans le répertoire ~ / Java / Homework / 257 et crée deux répertoires. Un appelé date et un autre appelé +% d-% b et place le fichier Client.java dans le répertoire des dates.
Je pensais que mon export de variable de date ne fonctionnait tout simplement pas, mais lorsque je tape $ DATE à l'invite de commande, il me donne le 27 janvier comme il se doit. Alors, est-ce que quelqu'un sait ce qui pourrait en être la cause? Un de mes amis a fait quelque chose de très similaire à celui-ci en utilisant un format légèrement différent pour la date et ses œuvres. La seule chose qui me différencie sur mon ordinateur est la finalisation de homebrew mais je ne vois pas en quoi cela affecterait ma date ...
cd wherever && mkdir "$DATE" && cd "$DATE" && vim
(c'est-à-dire utiliser&&
au lieu de;
), il sera plus facile de remarquer quand l’une de ces commandes du milieu échouera (le reste ne sera pas exécuté et celle qui échoue (la dernière exécutée) aura probablement écrit un message d’erreur).Essayez de définir go comme une fonction dans
.bashrc
ou.alias
:Cela garantit que la date est déterminée chaque fois que vous utilisez la commande et pas seulement lorsque vous vous connectez / démarrez bash.
la source
go
est assezDans le sens des autres réponses: vous devez exécuter la commande de date. La solution la plus simple serait probablement de changer vos guillemets pour revenir en arrière:
la source
go
avec cette chaîne littérale. Lorsque vous voulez exécuter du code, vous pouvez le placer à l’arrière ou utiliser le$(...)
formalisme mentionné dans les autres réponses.