2 个版本

0.1.1 2020年8月10日
0.1.0 2020年8月10日

#624 in 编程语言

BSD-2-Clause

5KB
51

cexe 解释器

这是一个当您无法使用真实解释器时使用的 #! 解释器。

您可以使用 cexe 来运行任意 /bin/sh 脚本来启动您的程序。这允许您进行额外的设置,调用编译器,或执行任何其他可能需要的操作来实际解释您的文件。

#! /usr/bin/env cexe
# export A="An Environment Variable"
# exec nix run -f '<nixpkgs>' pkgs.python3 -c python3 "$0" "$@"

import sys;
import os;

print("Welcome to Python!")
print(os.getenv("A"))
print(sys.argv)

您只需放置一个注释块(每个行都有一致的优先级),包含要运行的 shell 脚本来启动程序。该脚本将文件作为 $0 参数传递,之后的参数就像常规的 shell 脚本一样。脚本一直运行到第一个非前缀行。

#! /usr/bin/env cexe
// tmp="$(mktemp -d)"
// rustc -o "$tmp/$(basename $0)" 1>&2 "$0"
// "$tmp/$(basename $0)" "$@"
// r="$?"
// rm -Rf $tmp
// exit "$r"

pub fn main() {
    println!("Hello, rust");
    for arg in std::env::args() {
        println!("{}", arg);
    }
}

无运行时依赖