up:: Programming
変数
pythonと同じく、事前に宣言する必要はない。
[]
で配列になるし、[c:g]
みたいな感じでkey:valueとして辞書も宣言できる。
呼び出したいときは{variable}
。
Strings
++でくっつく。
Expressions & operators ⋅ Automate ⋅ LlamaLab
Termux連携
taskerプラグインがそのまま読めるのでそれを使う。
直接コマンドは打てないので、ファイルを実行する。ただしTermuxの内部ストレージにあるファイルしか使えないっぽい。
そこに置いてればchmodが7かどうかは問題ないらしい。
GitHub - termux/termux-tasker: Termux add-on app for integration with Tasker.
Termux git
コア機能
ワンタップでgitを使用
変えたいもの
パス
コマンド
gitコマンドファイルを作成する
コンフィギュアフォルダを作成、その中にgitコマンドを並べる
名前を見て、そこに無ければ作成
git add .
git commit -m ‘c’
git switch main
git pull
git merge sub —commit
git push
git branch -d sub
git switch -c sub
Switched to branch ‘main’
From github.com:Navirl/sonolart
e6177c80..8183a067 main → origin/main
fatal: this operation must be run in a work tree
fatal: Unable to read current working directory: No such file or directory
fatal: Unable to read current working directory: No such file or directory
fatal: Unable to read current working directory: No such file or directory
git mergeでカレントディレクトリがワークツリーにいないからエラー?
カレント指定部分の最後に/を足すと通った。
fork or subroutine
forkは処理を分岐させる。
親側と分岐側は同時に実行される。戻り値なし。
https://llamalab.com/automate/doc/block/fork.html
subroutineは新たな処理を行う。
分岐側が終了するまで親は動かない。戻り値あり。
https://llamalab.com/automate/doc/block/subroutine.html
Atomic
変数を永続化する。
明示的に消去しない限り残り続ける。
Atomic example ⋅ Community ⋅ Automate for Android
add and load
保存されている数値に数値を足し合わせるブロック。
足し合わせるほうの数値をデルタ値と呼称する。
Atomic add & load ⋅ Automate ⋅ LlamaLab
Expression true
式結果がtrueかどうかでflowを分割する、いわゆるif文。
Expression true ⋅ Automate ⋅ LlamaLab
true
Automateはbool値を持たない。
代わりに、下記の値をfalseとし、それ以外をすべてtrueとする。
- null
- 0(number)
- NaN
- 空、もしくは長さが0のtext
- 空のarray
- 空のdictionary
また、boolは無いが論理演算はある。あくまで左から一つずつ演算していき結果だけ返すというもの。
普段組み合わせ表だけ見ていると混乱しそう(例えばANDは両方trueの時にtrueを返す→両方をいっぺんに演算している、という誤解を持っている場合)だが、意味は何も変わっていない。
- &&
もし式がfalseなら左の値を返す演算。 - ||
もし式がtrueなら左の値を返す演算。 - ?
もし式がtrueならfalseを返す演算。
もちろん式は()で括れる。
Expressions & operators ⋅ Automate ⋅ LlamaLab
split
array split(text,regex)
blockではなくfunctionのほうにある。
textを正規表現で分割してarrayにする。
split ⋅ Automate for Android ⋅ LlamaLab
逆の操作はjoin。
text join(container, delimiter)
デリミタを入力してarrayかdictionaryをtext変換。
join ⋅ Automate for Android ⋅ LlamaLab
現在時刻
Now
組み込みの変数。idempotent - 冪等であるため、ブロック中なら何度呼び出しても値は変わらない。
Variables ⋅ Automate for Android ⋅ LlamaLab
冪等でない値が欲しいならtext clock(type)
。デバイス起動からの時間も取得可能。
clock ⋅ Automate for Android ⋅ LlamaLab
なお、どれにしてもUNIX TIMESTAMP、つまり秒数しか取れない。
現在の時間を取りたいならtext dateFormat(timestamp, pattern, timeZone, language)
を使用する。
foreach
そのものずばりforeachブロックがある。
ちゃんと最後にforwachブロックに処理を返さないとそこで終わるので注意。
For each ⋅ Automate for Android ⋅ LlamaLab
terminal session action
terminal sessionをフォアにするかバックにするからへんの設定。
GitHub - termux/termux-tasker: Termux add-on app for integration with Tasker.
/** {@link #EXTRA_SESSION_ACTION} の値で、新しいセッションを現在のセッションとして設定し、
* {@link TERMUX_ACTIVITY} が実行されていない場合はそれを開始して
* 新しいセッションを前面に持ってくる。
*/
public static final int VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_OPEN_ACTIVITY = 0;
/** {@link #EXTRA_SESSION_ACTION} の値で、既存のセッションを現在のセッションとして保持し、
* {@link TERMUX_ACTIVITY} が実行されていない場合はそれを開始して
* 既存のセッションを前面に持ってくる。新しいセッションはセッションリストの左側の
* サイドバーに追加される。
*/
public static final int VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_OPEN_ACTIVITY = 1;
/** {@link #EXTRA_SESSION_ACTION} の値で、新しいセッションを現在のセッションとして設定するが、
* {@link TERMUX_ACTIVITY} が実行されていない場合はそれを開始せず、
* セッションはTermuxの通知に表示され、新しいセッションを前面に持ってくるために
* クリックできる。{@link TERMUX_ACTIVITY} がすでに実行中の場合は、
* これは {@link #VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_OPEN_ACTIVITY} のように動作する。
*/
public static final int VALUE_EXTRA_SESSION_ACTION_SWITCH_TO_NEW_SESSION_AND_DONT_OPEN_ACTIVITY = 2;
/** {@link #EXTRA_SESSION_ACTION} の値で、既存のセッションを現在のセッションとして保持するが、
* {@link TERMUX_ACTIVITY} が実行されていない場合はそれを開始せず、
* セッションはTermuxの通知に表示され、既存のセッションを前面に持ってくるために
* クリックできる。{@link TERMUX_ACTIVITY} がすでに実行中の場合は、
* これは {@link #VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_OPEN_ACTIVITY} のように動作する。
*/
public static final int VALUE_EXTRA_SESSION_ACTION_KEEP_CURRENT_SESSION_AND_DONT_OPEN_ACTIVITY = 3;
配列の一番後ろの値を抜きたい
[-1]
で可能。この添字記法をsubscriptという。
そこにも乗ってない情報だが使える。
Expressions & operators ⋅ Automate for Android ⋅ LlamaLab
if
expression true.