1 个不稳定版本
0.1.0 | 2021年5月21日 |
---|
#84 in #execute-command
11KB
213 行
unsh
Unsh,非壳。它只是执行命令
常见问题解答
问:什么是unsh?它是shell吗?
是的,有点像。你可以用它运行命令,如下所示
¥ sudo systemctl status crond
- (press RETURN)● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-05-10 17:58:41 PDT; 1 weeks 3 days ago
Main PID: 1904 (crond)
Tasks: 1 (limit: 18855)
Memory: 1.9M
CGroup: /system.slice/crond.service
└─1904 /usr/sbin/crond -n
问:太棒了,它还能做什么?
答:基本上就是这样。它使用标准shell参数解析将argv传递给程序
但是,你不能将一个程序的输出管道连接到另一个程序
¥ echo "Hi there" | sed s/there/hi
Hi there | sed s/there/hi
exit code: 0
问:什么?但这不正是shell的基本功能之一吗?
答:不是这个shell。这个shell不会做这个。
它也不支持变量
¥ echo $PATH
$PATH
exit code: 0
问:如果我需要将一个命令的输出管道连接到另一个命令怎么办?
答:使用真正的编程语言。Shell脚本语言只是功能受限的编程语言。
你有很多选择。比如python或Rust。
Shell通常将编程环境和进程执行混为一谈。Unsh不是,它只执行命令,将编程留给编程语言。
问:为什么提示符是¥而不是$?我明白了。
答:是的,你明白了。
依赖项
~9MB
~166K SLoC