私はrubyを使ってシェルコマンドを実行しようとしていますが、ディレクトリを空白でPATHに変更することはできません。rubyのシェルcdコマンド
variable = %x[cd #{ENV["HOME"]}/Virtual\\ VMs/]
これは機能しません。 は絶対に安全であるためには、あなたに
私はrubyを使ってシェルコマンドを実行しようとしていますが、ディレクトリを空白でPATHに変更することはできません。rubyのシェルcdコマンド
variable = %x[cd #{ENV["HOME"]}/Virtual\\ VMs/]
これは機能しません。 は絶対に安全であるためには、あなたに
ありがとう:
path = File.join [ENV["HOME"], 'Virtual VMs']
variable = %x[cd '#{path}']
ので、それは1が、おそらくのようになめらかにやりたい動作することを確認するために、cd
は空の出力を持っていることに、注意してください。
path = File.join [ENV["HOME"], 'Virtual VMs']
variable = %x[cd '#{path}' && ls -la]
#⇒ "total 32\ndrwxr-xr-x ....."
何それはどうしようとしていますか?あなたはディレクトリにchdirしようとしますが、その中で何もしないでください。いずれにしてもvariable
は空になります。無意味であることを除けば、実行可能ファイルではないので、このようにCDを確実に実行することはできません。 %x[cd]
を実行すれば、これを見ることができます。 Errno::ENOENT
例外が発生します。
コードで達成したいことをより広い意味で最初に説明する必要があります。作業ディレクトリをどこで変更したいですか? Rubyプロセスでは、Dir.chdir
を使用するか、子プロセスで使用する必要があります。この場合、cdの後にいくつかのコマンドを実行する必要があります。
仮想マシンの割り当てに関する情報を確認しようとしています:/ root /仮想マシン/フォルダ/フォルダですので、最初にディレクトリを変更する必要があります – eifersucht
Dir.chdirが最善の方法ですが、スペース:Errno :: ENOENT:そのようなファイルやディレクトリはありません。@ dir_chdir – eifersucht
もう一度: 'Dir.chdir File.join [ENV [" HOME "]、 'Virtual VMs']'は完全に動作します。 – mudasobwa
'変数=%x [cd#{ENV [" HOME "]}/Virtual \\ VMs /]'は私のために働く – Santhosh
Ruby stdから 'Dir.chdir'を使用しないのはなぜですか? https://ruby-doc.org/core-2.2.0/Dir.html#chdir-method –
私はそれを使用しました。ありがとう – eifersucht