【发布时间】:2012-09-18 01:37:31
【问题描述】:
我有一个保存在 scripts/shell/record_video.sh 中的 shell 脚本,我需要在我的一个项目中调用它。
在代码中的使用示例:
(defn save-mp4 [cam filename duration]
(sh "scripts/shell/record_video.sh" (:i_url cam) filename (str duration)))
如果我上传到 clojars,我将如何 jar 项目以便包含 shell 脚本?
跟进
感谢@Ankur。 (sh "bash" :in bash-command-string) 非常有用。我首先需要 .sh 文件的唯一原因是,当标准输出包含大的内容(如视频)时,我无法完全弄清楚如何进行重定向。
文件scripts/shell/record_video.sh 包含:
SRC=rtsp://$1:554/axis-media/media.amp?resolution=1920x1080
DST=$2
LEN=$3
openRTSP -4 -d $LEN -w 1440 -h 1080 -f 25 -u root pass $SRC > $DST 2> /dev/null
而且我不知道如何翻译重定向 (>) 而不会使程序内存消耗巨大。 (sh "bash" :in bash-command-string) 命令允许在没有 shell 脚本的情况下编写我的函数:
(defn save-mp4 [cam filename duration]
(let [src (format "rtsp://%s:554/axis-media/media.amp?resolution=1920x1080" (:i_url cam))
cmd (format "openRTSP -4 -d %d -w 1440 -h 1080 -f 25 -u root pass %s > %s 2> /dev/null"
duration src filename)]
(sh "bash" :in cmd)))
【问题讨论】: