Wie kann ich mehrere Aufgaben in einer Befehlszeile hinzufügen aufTaskkrieger?
Ich möchte so etwas erreichen wie:
task add task1 tag:tag1, task2 tag:tag2
Ich denke, es sollte ein Trennzeichen zum Trennen von Aufgaben geben.
Antwort1
Wenn Sie dies buchstäblich nur in einer Zeile erledigen müssen, können Sie Folgendes tun:
task add "Get some foo"; task add "Get some bar"
Dabei wird einfach das ;
native Token der Shell verwendet.
Antwort2
Ich weiß nicht, ob Sie das noch interessiert. Ich habe ein ziemlich schnelles Bash-Shell-Skript erstellt, das meinen damaligen Zwecken entsprach. Es fragt, ob Sie ein Projekt oder Tag(s) für die Aufgaben festlegen möchten, und erstellt dann schnell mehrere neue Aufgaben. Verwendet einige ziemlich auffällige Farbkombinationen, ich glaube, ich hatte damals gerade erst die Methode „echo -e“ entdeckt ;o)
Ich habe heute gesucht und Ihren Beitrag gefunden, weil ich das Skript zum Erstellen von Abhängigkeiten entwickeln wollte, aber es sieht so aus, als müsste ich Python lernen; ich möchte auch einige Google-Erinnerungssynchronisierungen durchführen. Wenn Sie ein gutes Tool gefunden haben, würde ich mich freuen, zu erfahren, für welche Lösung Sie sich entschieden haben.
kr A
#!/bin/bash
# Script: twmulti
# Created: 2016.02.11
# Current: ~/Bin
# clear the variables just in case a recent session set them
PRJNAME=""
TAGNAME=""
TSKNAME=""
clear
echo -e "\e[1;33;41mENTER PROJECT NAME >\e[0;m"
read PRJNAME
if [ -z $PRJNAME ] ; then PRJNAME="" ; fi
echo -e "\n\e[1;33;41mENTER ANY TAG(S) >\e[0;m"
read TEMPTAGNAME
TAGNAME="+"`echo $TEMPTAGNAME | sed 's/ / +/g'`
if [ -z $TEMPTAGNAME ] ; then TAGNAME=""; fi
while :
do
clear
echo -e "\e[1;33;41mENTER TASK DESCRIPTION (Project:$PRJNAME) >\e[0;m"
echo -e "\e[1;33;41mor enter again to quit\e[0;m"
read TSKNAME
if [ -z $TSKNAME ] ; then exit ; fi
task add project\:$PRJNAME $TAGNAME $TSKNAME 1>/dev/null
echo -e "\e[0;m"
done
Antwort3
Wie @Sardathrion im Kommentar anmerkte, würde das folgendermaßen aussehen:
for i in "task 1" "task 2" "task 3"; do task add "$i"; done
Antwort4
Ich hoffe, das hilft jemandem und Sie können es task import
für einen solchen Anwendungsfall verwenden. Aus task
der Manpage von :
task import [<file> ...]
Imports tasks in the JSON format. Can be used to add new tasks, or update existing ones. Tasks are identified by their UUID.
If no file or "-" is specified, import tasks from STDIN.
Setting rc.recurrence.confirmation to an appropriate level is recommended if import is to be used in automated workflows. See taskrc(5).
For importing other file formats, the standard task release comes with a few example scripts, such as:
import-todo.sh.pl
import-yaml.pl
Sie können also so etwas tun:
$ echo '[{"description":"task1"},{"description":"task2"}]' |task import -
Importing 'STDIN'
add bfc337ce-b446-453d-8cfe-c570bc1b5f03 task1
add 556a737c-11f3-4a21-a872-67e56b75cdc4 task2
Imported 2 tasks.
Natürlich können Sie beliebige Attribute hinzufügen (Tags, Projekt, UDA usw.). Das JSON-Schema ist hier verfügbar:https://taskwarrior.org/docs/design/task.html
Um Aufgaben in großen Mengen hinzuzufügen, können Sie zuerst eine Datei mit allen Informationen erstellen und diese dann einfach an weitergeben task
oder einfach Vim mit verwendenAufgabenwiki:)