web-dev-qa-db-fra.com

Lors de l'écriture d'un script Bash, comment puis-je créer puis ouvrir un fichier avec la date dans le nom?

Je veux utiliser un script pour ouvrir une liste d'URL, puis créer un fichier texte vide appelé "[date d'aujourd'hui] .homework" puis ouvrir ce fichier texte dans Vim.
Voici le script que j'ai maintenant:

#!/bin/bash
## Open firefox to the websites containing each classes' homework assignments.
firefox -new-window -url https://www.firsturl.com -new-tab -url https://www.secondurl.com -new-tab -url http://www.thirdurl.com -new-tab -url https://www.fourthurl.com -new-tab -url https://www.fifthurl.com
## Set up today's date as prefix for the filename.
today=`date '+%Y_%m_%d'`;
filename="~/homework/today.homework"
## Open the created file in Vim.
vim ~/homework/today.homework  

Le but de ce script est d'ouvrir tous les endroits qui contiennent mes devoirs, puis d'ouvrir un fichier horodaté pour que je puisse saisir manuellement les devoirs du jour. Je souhaite taper manuellement les affectations plutôt que d'utiliser curl ou wget car je dois me souvenir des affectations et les saisir manuellement est la meilleure façon de le faire. De plus, je n'utilise Linux que depuis 6 semaines et je pense que l'automatisation du processus de compilation avec ces outils est un peu hors de ma portée.
De plus, existe-t-il un moyen de l'exécuter automatiquement chaque fois que je me connecte chaque jour?

4
user510782

Votre ligne pour today= devrait ressembler à ceci:

today=$(date +%Y_%m_%d)

puisque today est maintenant une variable, elle serait désignée par un $ menant la Parole comme ceci:

echo $today

ce qui donnerait 2016_02_23 comme sortie. Ainsi, les lignes après avoir utilisé cette variable today ressembleraient à ceci:

filename="~/homework/${today}.homework"

et

vim "~/homework/${today}.homework"

ou puisque vous avez donné filename comme variable, vous pouvez faire ceci:

vim "$filename"

Ou, si vous voulez vraiment faire preuve de créativité, au lieu d'affecter d'abord la variable, vous pouvez simplement exécuter la commande elle-même dans le nom de fichier lorsque vous l'ouvrez en une seule ligne:

vim "~/homework/$(date +%Y_%m_%d).homework"

J'espère que cela t'aides!

3
Terrance