Emacsが名前にスペースを含むファイルをプログラムで開く必要がある場合はどうすればよいですか?バックティックまたは次のいずれかを使用して、Rubyスクリプトで次のコマンドを試しましたpopen(…)
。
emacs "foo bar"
または
emacs foo\ bar
それぞれの名前foo
と2つのファイルを開きますbar
。しかし、名前があるものを開きたいですfoo bar
。
答え1
シェルに渡されたコマンドラインを使用してpopenを呼び出しているため、引用に問題があります。 Rubyの文字列パーサーは二重引用符またはバックスラッシュを使用します。シェルをバイパスする文字列配列でpopenを呼び出すことも、emacs foo\\ bar
シェルが表示できるようにRubyが残したいバックスラッシュをエスケープするように書くこともできます。