文档章节

在多种不同的 Common Lisp 实现(CLISP、CCL、SBCL)中执行shell命令的函数

FreeBlues
 FreeBlues
发布于 2014/01/30 00:19
字数 178
阅读 2325
收藏 3

开始只知道 CLISP 中的是:

 (ext:shell …)

然后查了一下,发现又多了解了两种,CCL 和 SBCL 分别有两个函数是:

(run-program …)

(sb-ext:run-program …)

接着继续查,发现有人写出这个很不错的函数,包含了好几种用法:

(defun sh (cmd)
    #+clisp
        (let ((str (ext:run-shell-command cmd :output:stream)))
            (loop for line = (read-line str nil)
             until (null line)
             do (print line)))
    #+ecl 
        (si:system cmd)
    #+sbcl 
        (sb-ext:run-program "/bin/sh" (list "-c" cmd) :input nil :output *standard-output*)
    #+clozure 
        (ccl:run-program "/bin/sh" (list "-c" cmd) :input nil :output *standard-output*)))

实际举个例子,就以 CCL 为例好了:

CL-USER> (ccl:run-program "/bin/sh" (list "-c" "echo 123") :input nil :output *standard-output*)
123
#<EXTERNAL-PROCESS (/bin/sh -c echo 123)[2596] (EXITED : 0) #x30200197619D>
CL-USER>


© 著作权归作者所有

FreeBlues
粉丝 98
博文 280
码字总数 493678
作品 0
其它
程序员
私信 提问
Common Lisp 各种实现的一些简单共性

Common Lisp 各种实现的一些简单共性 试用了几种不同的Common Lisp 的实现,比如CCL 和 SBCL,发现它们有一个共同之处,就是真正调入内存运行的文件只有两个,一个是可执行文件,一个是映像文...

FreeBlues
2013/01/18
0
0
Vim 下使用 Slimv(类似Slime) 轻松调试 Common Lisp

Vim 下使用 Slimv(类似Slime) 轻松调试 Common Lisp 目录 - 前情回顾- 安装slimv- 数据配置- 默认快捷键- 实战演练 前情回顾 在上一篇文章想法验证:超轻量级全功能纯文本界面 REPL 类语言 ID...

FreeBlues
2015/09/01
363
0
第1章 开始 Lisp 之旅 GETTING STARTED WITH LISP

第1章 开始 Lisp 之旅 GETTING STARTED WITH LISP 翻译者:FreeBlues github版本:https://github.com/FreeBlues/Land-of-lisp-CN 开源中国版本:http://my.oschina.net/freeblues/blog?cata......

FreeBlues
2014/07/08
0
0
【实践】MS WINDOWS系统中把 SBCL 集成到 Lispbox 中

【实践】MS WINDOWS系统中把 SBCL 集成到 Lispbox 中 最近在分析 Lispbox 中各个组成部分的启动顺序和调用方法,略有所得,遂尝试把 SBCL 集成到 Lispbox,具体方法如下: 1、安装好 Lispbo...

FreeBlues
2012/11/15
0
5
用最新版本的 Emacs、SLIME和CCL来打造自己的 LispBox-0.8

用最新版本的 Emacs、SLIME和CCL来打造自己的 LispBox-0.8 首先得弄清楚 Lispbox 的启动顺序,以及各个部分(emacs、slime 、CCL 、quicklisp)如何被调用,大致描述如下: 1、执行 lispbox....

FreeBlues
2012/11/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Leetcode PHP题解--D106 997. Find the Town Judge

D106 997. Find the Town Judge 题目链接 997. Find the Town Judge 题目分析 给定一个数组N代表人数,和给定一个数组,每个元素为一个只有两个值(a,b)的数组。 代表a信任b。 从中找到一个b...

skys215
42分钟前
1
0
日志相关---log4j2配置文件详解

一、关于配置文件的名称以及在项目中的存放位置 log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn". 系统选择配置文件的...

spinachgit
43分钟前
0
0
redis 消息队列实现

方式一:通过list的阻塞读取命令,blpop或者brpop 消费者 public class Consumer extends DemoApplicationTests{ @Test public void consume(){ int timeout = 0;//永不超......

小海bug
今天
2
0
如何把微信语音汇总成一个MP3文件?

本篇以苹果手机为例,安卓手机也可类似。 第一步,安装同步助手 同步助手是一款在电脑上安装,可以保存手机上的内容的软件。支持把微信的聊天历史内容导出。甚至支持筛选语音文件按顺序导出—...

吴伟祥
今天
5
0
用ffsend使用Firefox Send

导读 ffsend 是 Firefox Send 的命令行客户端。本文将展示 Firefox Send 和 ffsend 如何工作。还会详细介绍如何在 Fedora 中安装和使用它。 ffsend 是 Firefox Send 的命令行客户端。本文将展...

问题终结者
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部