Emacs内でシェルコマンドを実行し、変数への完全な出力をキャプチャしたいと思います。これを行う方法はありますか?たとえば、次の方法でhello-string
を"hello"
に設定できるようにしたいと思います。
(setq hello-string (capture-stdout-of-Shell-command "/bin/echo hello"))
関数capture-stdout-of-Shell-command
は存在しますか?存在する場合、その本名は何ですか?
Shell-command-to-string
あなたの目的を満たしますか?
例えば:
(Shell-command-to-string "/bin/echo hello")
お役に立てれば。
伊勢藤の答えを拡張する提案があります。次のようなものを使用してみてください。
(setq my_Shell_output
(substring
(Shell-command-to-string "/bin/echo hello")
0 -1))
これにより、文字列"hello"
がmy_Shell_output
の値として設定されますが、きれいに設定されます。 (substring)
を使用すると、emacsがシェルコマンドを呼び出すときに発生する傾向のある末尾の\n
が排除されます。これは、Windowsで実行されているemacsで気になり、おそらく他のプラットフォームでも発生します。