Как создать скрипт для синхронизации заметок с файлами с помощью Geeknote

Проблема

Я хочу создать каталог с моими заметками из Evernote в файлах с форматом Markdown. Я узнал, что это можно сделать с помощью Geeknote, но для каждого ноутбука каждый раз.

Как создать скрипт bash, который синхронизирует каталог, где каждый поддиректория - это другой ноутбук, а внутри них файлы разметки ?

Пока вы делаете предложения, я буду держать этот вопрос в курсе.

Некоторые фоновые команды для запуска с

Команда на двухстороннюю синхронизацию с использованием Geeknote следующее:

gnsync --path ~/Evernote/Ler --logpath ~/.log/geeknote.log --format markdown --notebook ".Ler" --two-way TWO_WAY

Команда для перечисления моих ноутбуков:

geeknote notebook-list

Частичное решение

@RichardAnderson предложило следующий код для перечня и цикла в ноутбуки Evernote, я тестировал в своей системе и работает. Проблема заключается в том, что Пока вы делаете предложения, я буду держать этот вопрос в курсе. команда ждет действия пользователя во время листинга, я также не мог найти способ обойти это.

Просто создайте файл со следующим содержимым:

    #!/bin/bash
    geeknote notebook-list > /tmp/list.txt
    Note_List=$(cat /tmp/list.txt | grep -v Total | cut -d : -f 2)
    for i in $Note_List; do
        gnsync --path ~/evernote --logpath ~/.log/geeknote.log --format markdownn --notebook "$i" --two-way TWO_WAY
    done

Не забудьте изменить свой путь.

ВНИМАНИЕ! Если у вас есть изображения или сильно отформатированные заметки в вашей учетной записи evernote, обратите внимание, что этот метод может потенциально удалить форматирование и данные в заметках.

Как решить последний бит?

Если вам известен способ обойти необходимость действий пользователя во время команды примечания-примечания geeknote, пожалуйста, оставьте строка ниже.

1
задан 13 January 2015 в 10:38

2 ответа

Я искал то же самое. Это то, что я придумал.

#!/bin/bash
geeknote notebook-list > /tmp/list.txt
Note_List=$(cat /tmp/list.txt | grep -v Total | cut -d : -f 2)
for i in $Note_List; do
    gnsync --path ~/evernote --logpath ~/.log/geeknote.log --format markdown --notebook "$i" --two-way TWO_WAY
done

Вам, вероятно, придется нажать несколько раз после запуска. Я не уверен, как обрабатывать команду geeknote notebook-list, чтобы устранить необходимость нажатия клавиши ввода.

1
ответ дан 24 May 2018 в 00:27
  • 1
    Вы можете попробовать команду yes - см. [F2] – Hamish Downer 26 July 2015 в 16:50

Я не знаю, как обойти необходимость взаимодействия, но я знаю, как его автоматизировать: expect. Вы можете установить его с помощью apt-get. Вот мой сценарий ожидания, который сделал трюк для меня:

#!/usr/bin/expect -f

spawn geeknote "notebook-list"

expect "More"
sleep 2
send "j"
interact

Тогда вы можете использовать это вместо geeknote notebook-list:

./geeknote-expect-script > /tmp/list.txt
1
ответ дан 24 May 2018 в 00:27

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

Похожие вопросы: