システムコマンドを実行する(shell-command-to-string)
参考:Emacs 上で快適に Bash や Zsh を利用する設定 : 紹介マニア
システムのコマンドを呼び出し実行する関数は他にもありますが、引数を順序で指定しなければならなかったり、面倒だったと思います。これは引数に指定した文字列が、そのままコマンドの実行として使われるみたいです。パイプも使えていますし、試していませんが、リダイレクトもできそうです。
以下は、scratchのバッファで、関数を実行してみました。関数自体はC-x C-eで評価しているので、結果の文字列は身にバッファに出ています。コマンドの実行結果の文字列を変数にセットし、その変数はC-jで、その場で評価しているので、返却値が文字列で返されています。
Stringという関数名をみても、コマンドが返す文字列の取得を目的にした関数のはずですが、副作用でメールを送信することもできました。
;; This buffer is for notes you don't want to save, and for Lisp evaluation. ;; If you want to create a file, visit that file with C-x C-f, ;; then enter the text in that file's own buffer. (setq file-list (shell-command-to-string "cd tmp/magit-test; ls -al")) file-list "合計 28 drwxrwxr-x 3 ak ak 4096 6月 19 22:32 . drwxrwxr-x 7 ak ak 4096 6月 20 11:59 .. drwxrwxr-x 8 ak ak 4096 6月 19 23:59 .git -rw-rw-r-- 1 ak ak 231 6月 19 21:37 index.html -rw-rw-r-- 1 ak ak 21 6月 19 21:50 xxxxxxxxxx.txt -rw-rw-r-- 1 ak ak 15 6月 19 22:25 株価が下がる中mmm.txt -rw-rw-r-- 1 ak ak 25 6月 19 22:32 大筋一致した.txt " (shell-command-to-string "cd tmp; ls -al | mail -s \"test mail\" アカウント名@gmail.com")
コメントを残す