From: Phil Romero Date: 2009-08-23T11:13:03+09:00 Subject: Re: Checking if a specific Unix/Linux command exists Since you're using the command line, why not use 'which port'? it should return the path to the port command (i.e., /use/local/bin/port). You can always do a regex search for the success case of typing the port command on a line by itself as well, if this seems like too shell-dependent a solution. On Sat, Aug 22, 2009 19:00, Hunt Jon wrote: > I want to check if a command "port" is installed on Mac. > > Here is what I have now: > > File.open("test.txt", "w+") do |f| > if system("port > /dev/null 2>&1") > f.puts %x(port installed) > else > f.puts "No MacPorts command was found." > end > end > > I tried to check if the command "port" exists and if the command is > found, > it executes the command with the argument. Otherwise, > it just prints the string "No MacPorts found"... > > When running the script, it stalls. Possibly because > "port" command goes to interactive mode. I prevented > the output by using "/dev/null", but it seems that the command > is still running, but not output is shown. > > I was also playing with %x(). But I cannot find a solution. > > Jon