Home > Mobile >  what is this line means $runCmd = "cmexec $node1 echo \"\" > ".$logfile;
what is this line means $runCmd = "cmexec $node1 echo \"\" > ".$logfile;

Time:02-15

Please let me know the what's this line means:

$runCmd = "cmexec $node1 echo \"\" > ".$logfile;

it was written before as:

$runCmd = "cmexec $node1 rm -rf ".$logfile;

which probably means remove the file in logfile variable forced recursive, but later changed to the above. so

what's it's doing?

CodePudding user response:

Remove a file is different than an empty file.

The first option keep the file but override the content with "" (2x double quote), the second one remove the file.

Maybe your application need the file exist, because of this you cannot remove it.

CodePudding user response:

If you have really copied this line verbatim, it is pretty nonsense.

Let's assume that the variables mentioned here have the folllowing values:

  • runCmd has value FOO
  • node1 has value BAR
  • logfile has value BAZ

After parameter expansion and making the quoting a bit more legible, this leaves you with a line equivalent to

FOO   =   'cmexec BAR echo "" >' .BAZ

This means that a command named FOO is invoked. It must either be an executable file in the PATH, or a function. This command gets three parameters:

  • First parameter : a lonely equal sign
  • Second parameter: The string cmexec BAR echo "" >
  • Third paramete : the string .BAZ

I don't believe that anybody would seriously write such a command; my guess is that you made a typo, or error when doing a copy&paste of this command.

  • Related