Duplicated methods in TRestTools and TRestStringHelper

In TRestTools we have static std::string Execute(const char* cmd);
In TRestStringHelper we have std::string ExecuteShellCommand(string cmd);

I see the implementation is the same, so we can remove one.

We may also have a review of the methods in TRestTools and TRestStringHelper. The two classes should have a clear difference in the orientation. We shall make it easy for a user to guess where to find a tool method.

For example,
TRestTools → all the system-level method
TRestStringHelper → just the string methods: split, count, replace, etc.

Then many of the methods in TRestStringHelper should be moved to TRestTools. Like SearchFileInPath(), GetSubdirectories(), isPathWritable(), etc.

Yes, I agree, those methods you mention seem to fit more with the TRestTools, looks more intuitive.

This should be an issue to be included in Public Release 2.3.0 Milestone.