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 リマインダーの同期も行いたいと思っています。良いツールを見つけたら、どのような解決策に落ち着いたか教えていただけると嬉しいです。

韓国語


#!/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 スキーマはここから入手できます:タスクデザイン

タスクを一括で追加するには、まずすべての情報を含んだファイルを作成し、それを に渡すtaskか、Vimでタスクウィキ:)

関連情報