Taskwarriorで1つのコマンドで複数のタスクを追加するには?

Taskwarriorで1つのコマンドで複数のタスクを追加するには?

1つのコマンドラインに複数のタスクを追加する方法ミッション戦士

私は次のことを達成したいと思います:

task add task1 tag:tag1, task2 tag:tag2

ジョブを分離するには区切り文字が必要だと思います。

答え1

実際にこれを1行で行う必要がある場合は、次のようにできます。

task add "Get some foo"; task add "Get some bar"

これは;シェルのデフォルトトークンのみを使用します。

答え2

まだこの仕事に興味があるかどうかわかりません。私は当時私の目的に完全に動作する非常に高速なbashシェルスクリプトを作成しました。ジョブのプロジェクトまたはラベルを設定するかどうかを尋ねられ、複数の新しいジョブをすばやく作成できます。かなり騒々しい色の組み合わせを使っていましたが、当時「echo -e」メソッドを見つけたようです;o)

私は今日検索して依存関係を実行するスクリプトを開発したかったので、あなたの投稿を見つけましたが、Pythonを学ぶ必要があるようです。 Google アラートの同期も実行したいと思います。良いツールを見つけたら、どのソリューションを選択したのか教えてくれてありがとう。

カー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

答え3

@Sardathrionがコメントで指摘したように、これは次のとおりです。

for i in "task 1" "task 2" "task 3"; do task add "$i"; done

答え4

task importこれが誰かに役立つことを願っており、このようなユースケースに使用できることを願っています。マンページtask:

       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

したがって、次のようにすることができます。

$ 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.

もちろん、必要な属性(タグ、項目、UDAなど)を追加できます。 JSONスキーマはここで使用できます。https://taskwarrior.org/docs/design/task.html

ジョブを一括で追加するには、まずすべての情報を含むファイルを作成してから提供するか、taskVimを使用します。ミッションウィキ:)

関連情報