色々確認

してます。なんとなくスクリプトの実行を全部ナニしたいんですができるのかどうか。

とは言え

いくつか無理矢理こさえてみる。

#!/usr/bin/gosh

(use gauche.process)

(define l '((/etc/init.d/snmpd restart)))

(define main
  (lambda (args)
    (let ((x (process-output->string-list (car l))))
      (display x)
      (newline))))

実行してみると以下 (root で

# ./initd.scm 
(Restarting network management services: snmpd.)
#

これ、でびあんなので一つなんですが、RHL 系だと 2 行。どうなるんだろね、と言いつつ以下のスクリプトをナニ。

# cat test1.sh
#!/bin/bash

echo "a"
echo "b"
#

これを起動するナニを作ってみる。

# cat test1.scm
#!/usr/bin/gosh

(use gauche.process)

(define l '((/home/rms/1.programming/1.Gauche/3.system/2.system/test1.sh)))

(define main
  (lambda (args)
    (let ((x (process-output->string-list (car l))))
      (display (car x))
      (newline)
      (display (cadr x))
      (newline))))
#

実行してみたナニが以下

# ./test1.sh 
a
b
#

パイプがあったらスクリプトにした方がええ感じ。

# cat test2.sh
#!/bin/bash

netstat -n --all|grep ':161 '
#

上記だとほぼ同じでなんとかなりますが、実行したナニの標準出力の扱いは抽象的に解た方が良いな。どうせリストで受けてるんでなんとかなるはず。

課題

としてはスクリプトが途中でオワった時の扱いですか。