TSH 脚本语言
TSH 脚本语言是 TSH 自研的轻量脚本语言,支持变量、条件分支、循环和函数,兼容本地 EXE 和 CF 版本。
基本语法
脚本文件使用 .tsh 扩展名,通过 tsh script.tsh 或 source script.tsh 执行。
注释
bash
# 这是单行注释
var x = 10 # 行末注释变量
bash
var name = "TSH"
var count = 42
var pi = 3.14
var flag = true变量使用 var 声明,支持字符串、数字和布尔值。使用 ${变量名} 在字符串中插值:
bash
var name = "World"
echo "Hello, ${name}!"
# 输出: Hello, World!命令替换
用反引号包裹命令,将输出赋值给变量:
bash
var files = `ls`
var current = `pwd`
echo "当前目录: ${current}"条件分支
if 语句
bash
var x = 10
if x > 5 {
echo "x 大于 5"
}
if x > 5 {
echo "x 大于 5"
} else {
echo "x 不大于 5"
}
if x > 10 {
echo "x 大于 10"
} else if x == 10 {
echo "x 等于 10"
} else {
echo "x 小于 10"
}比较运算符
| 运算符 | 含义 |
|---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
逻辑运算符
bash
if x > 0 && x < 100 {
echo "x 在 0-100 之间"
}
if x < 0 || x > 100 {
echo "x 超出范围"
}循环
for 循环
bash
# 遍历列表
for i in 1 2 3 4 5 {
echo "Count: ${i}"
}
# 遍历命令输出
for file in `ls` {
echo "File: ${file}"
}while 循环
bash
var i = 0
while i < 5 {
echo "Iteration: ${i}"
var i = i + 1
}循环控制
bash
for i in 1 2 3 4 5 6 7 8 9 10 {
if i == 5 {
break
}
echo "i = ${i}"
}函数
定义函数
bash
fn greet(name) {
echo "Hello, ${name}!"
}
fn add(a, b) {
return a + b
}调用函数
bash
greet("TSH")
# 输出: Hello, TSH!
var sum = add(3, 7)
echo "3 + 7 = ${sum}"
# 输出: 3 + 7 = 10完整示例
示例 1: 批量创建文件
bash
# create_files.tsh
var prefix = "file"
var count = 5
for i in 1 2 3 4 5 {
var name = "${prefix}_${i}.txt"
echo "Creating ${name}"
echo "Content ${i}" > ${name}
}
echo "Done! Created ${count} files."执行:
bash
tsh create_files.tsh示例 2: 文件统计
bash
# file_stats.tsh
var files = `ls`
echo "Files in current directory:"
echo "${files}"
echo "---"
echo "Listing complete."示例 3: 条件判断
bash
# check.tsh
var input = `whoami`
if input == "dev" {
echo "Welcome, developer!"
} else {
echo "Hello, ${input}!"
}示例 4: 函数与循环
bash
# math.tsh
fn factorial(n) {
if n <= 1 {
return 1
}
return n * factorial(n - 1)
}
for i in 1 2 3 4 5 6 7 8 9 10 {
var result = factorial(i)
echo "${i}! = ${result}"
}运行方式
tsh 命令
bash
tsh script.tshtsh 命令使用 TSH 脚本解释器执行 .tsh 文件。
source 命令
bash
source script.tshsource 会自动检测文件扩展名。.tsh 文件使用 TSH 脚本解释器,其他文件按普通命令逐行执行。
兼容性
TSH 脚本语言同时兼容:
- CF 版本 — 在浏览器中通过 JS 解释器运行
- 本地 EXE — 在本地终端中通过 C 解释器运行
同一份 .tsh 脚本可以在两个环境中无缝运行。
语言特性总结
| 特性 | 语法 |
|---|---|
| 变量声明 | var name = value |
| 字符串插值 | ${name} |
| 命令替换 | `command` |
| 条件分支 | if / else if / else |
| for 循环 | for var in list { } |
| while 循环 | while condition { } |
| 函数定义 | fn name(args) { } |
| 函数返回 | return value |
| 循环中断 | break |
| 注释 | # |