Ao escrever um script Bash, como faço para criar e depois abrir um arquivo com a data como parte do nome?

4

Eu quero usar um script para abrir uma lista de URLs, criar um arquivo de texto vazio chamado "[data de hoje] .homework" e abrir esse arquivo de texto no Vim.
Aqui está o script que eu tenho agora:

#!/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  

O objetivo deste script é abrir todos os lugares que contêm minhas tarefas de casa e, em seguida, abrir um arquivo com data e hora para inserir manualmente as atribuições do dia. Quero digitar manualmente as atribuições, em vez de usar curl ou wget , porque preciso lembrar as atribuições e digitá-las manualmente é a melhor maneira de fazer isso. Além disso, eu só uso o Linux há seis semanas e acho que automatizar o processo de compilação com essas ferramentas está um pouco fora da minha profundidade. Além disso, existe uma maneira de executá-lo automaticamente sempre que eu fizer login todos os dias?

    
por user510782 24.02.2016 / 06:57

1 resposta

3

Sua linha para today= deve ficar assim:

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

como today agora é uma variável, ela seria designada com um $ , o que leva a palavra assim:

echo $today

que daria 2016_02_23 como saída. Assim, as linhas depois de usar essa variável today ficariam assim:

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

e

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

ou desde que você forneceu filename como variável, você pode fazer isso:

vim "$filename"

Ou, se você quiser realmente ser criativo, em vez de atribuir a variável primeiro, basta fazer o próprio comando no nome do arquivo quando abrir tudo em uma linha:

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

Espero que isso ajude!

    
por Terrance 24.02.2016 / 07:10