При написании сценария Bash, как мне создать, а затем открыть файл с датой в качестве части имени?

Я хочу использовать скрипт, чтобы открыть список URL-адресов, затем создать пустой текстовый файл с именем "[сегодняшняя дата].homework" и затем открыть этот текстовый файл в Vim.
Вот сценарий, который я сейчас имею:

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

Цель этого сценария - открыть все места, в которых содержатся мои домашние задания, а затем открыть файл с отметкой даты, чтобы я мог вручную вводить назначения дня. Я хочу набирать назначения вручную, а не использовать curl или же wget потому что мне нужно запомнить задания и набирать их вручную - лучший способ сделать это. Кроме того, я использую Linux только в течение 6 недель, и я думаю, что автоматизация процесса компиляции с помощью этих инструментов - немного из моей глубины.
Кроме того, есть ли способ его автоматического запуска при каждом входе в систему каждый день?

1 ответ

Решение

Ваша линия для today= должен выглядеть так:

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

поскольку today переменная, она будет обозначена $ привести слово как это:

echo $today

который дал бы 2016_02_23 в качестве выхода. Итак, строки после использования этого today переменная будет выглядеть так:

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

а также

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

или так как вы дали filename в качестве переменной вы можете сделать это:

vim "$filename"

Или, если вы хотите по-настоящему проявить изобретательность, вместо того, чтобы сначала назначать переменную, вы можете просто выполнить саму команду в имени файла, когда вы открываете ее в одну строку:

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

Надеюсь это поможет!

Другие вопросы по тегам