我正在尝试实现一个 Lisp 版本的Processing,为此我正在使用macro_lisp
crate 在编译时将 Lisp 代码转换为 Rust。
当我像这样构建我的代码时,它会起作用:
主文件
fn main() {
include!("hello.lisp");
}
Run Code Online (Sandbox Code Playgroud)
你好.lisp
fn main() {
include!("hello.lisp");
}
Run Code Online (Sandbox Code Playgroud)
请注意,我必须将hello.lisp
in lisp!()
、 in的内容包装起来hello.lisp
本身。
我希望它的结构如下:
主文件
fn main() {
lisp!(include!("hello.lisp"));
}
Run Code Online (Sandbox Code Playgroud)
你好.lisp
println "hello"
Run Code Online (Sandbox Code Playgroud)
但这给了我以下错误:
lisp!(println "hello")
Run Code Online (Sandbox Code Playgroud)
那里不应该有 EOF,应该有 hello "list"
.
我究竟做错了什么?我需要打补丁macro_lisp
吗?
我正在编写一个Bourne shell部署脚本,它以root身份运行一些命令,一些命令以当前用户身份运行.我希望不以root身份运行所有命令,并且如果我需要的命令可用于root(以防止中止的半完成部署),请提前检查.
为了做到这一点,我想创建一个函数来检查命令是否可以作为root运行.我的想法是这样做:
sudo_command() {
sudo sh -c 'type "$1"'
}
Run Code Online (Sandbox Code Playgroud)
然后像这样使用它:
required_sudo_commands="cp rm apt"
for command in $required_sudo_commands do
sudo_command "$command" || (
echo "missing required command: $command;
exit 1;
)
done
Run Code Online (Sandbox Code Playgroud)
你可能会在我的问题中猜到:它不起作用.你们有没有看到我在这里做错了什么?
我试着在sudo_command中单独运行命令,但奇迹般地(对我来说)确实有效.但是,当我将命令放入一个单独的文件时,它不起作用.