19 个版本 (2 个稳定版)

2.0.1 2024年2月12日
2.0.0 2024年1月25日
0.5.0 2020年4月21日
0.4.9 2020年4月16日
0.1.2 2020年1月11日

#68 in 操作系统

Download history 1/week @ 2024-03-08 85/week @ 2024-03-29 20/week @ 2024-04-05

98 每月下载量

MITGPL-3.0-only

38KB
866

FCTool

Shell 脚本的最佳解决方案。

安装

  1. 安装 Cargo
  2. 运行 cargo install fctool

用法

fctool{输入文件}

示例

请参阅存储库中的 'examples' 目录。

文档

Hello world

Hello, world!

写入并覆盖文件

![file.txt]

写入但不覆盖

[file.txt]

定义变量

var = text

引用变量

{var}

从管道读取

%foriter
    line {line_i}: {line}
%endfor

迭代指定表达式的行

%for line : {$["text.txt"]}
    prefix {line} suffix
%endfor

使用指定分割字符串迭代指定表达式

%for line : {$["/etc/passwd"]}
    %for column : {colon} : {line}
        {column}
    %endfor
    %l
%endfor

执行命令

{$("echo 1")}

读取文件

{$["file.txt"]}

if else

%if {var == "value" || other == "foobar"}
    condition was true!
%elif {var == "foo"}
    Elif true!
%else
    Else
%endif

用户输入

user_input = {input("enter value: ")}

退出进程

{exit}

源另一个 fctool 文件

{source("other.fctool")}

数学!

{x + y} Add
{x - y} Sub
{x * y} Mul
{x / y} Div
{x % y} Mod
{x ^ y} Pow

函数

%func add a b
    %ret {a + b}
%endfunc

{add(1, 2)}

正则表达式匹配

%if {match(".+", "abc")}
    matches!
%endif

换行符

%l

将输入文本输入到命令中

$$[cat]
hello
to
cat

使用控制字符变量
{ 左花括号
} 右花括号
: 冒号
; 分号
% 百分号

依赖

~5–8MB
~122K SLoC