Wie füge ich in Taskwarrior mehrere Aufgaben in einem Befehl hinzu?

Wie füge ich in Taskwarrior mehrere Aufgaben in einem Befehl hinzu?

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 importfür einen solchen Anwendungsfall verwenden. Aus taskder 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 taskoder einfach Vim mit verwendenAufgabenwiki:)

verwandte Informationen