Skip to content

TSH 脚本语言

TSH 脚本语言是 TSH 自研的轻量脚本语言,支持变量、条件分支、循环和函数,兼容本地 EXE 和 CF 版本。

基本语法

脚本文件使用 .tsh 扩展名,通过 tsh script.tshsource 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.tsh

tsh 命令使用 TSH 脚本解释器执行 .tsh 文件。

source 命令

bash
source script.tsh

source 会自动检测文件扩展名。.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
注释#

基于 MIT 许可证发布