Mogę wyrazić moją potrzebę w następującym scenariuszu: Napisz funkcję, która akceptuje ciąg znaków jako polecenie rodzime.
Pomysł nie jest zbyt daleko idący: jeśli łączysz się z innymi narzędziami wiersza poleceń z innych miejsc w firmie, które dostarczają ci polecenia do uruchamiania dosłownie. Ponieważ nie kontrolujesz polecenia, musisz zaakceptować każde prawidłowe polecenie jako dane wejściowe . Oto główne czkawki, których nie byłem w stanie łatwo pokonać:
Polecenie może uruchomić program żyjący na ścieżce ze spacją:
$command = '"C:\Program Files\TheProg\Runit.exe" Hello';
Polecenie może zawierać parametry ze spacjami:
$command = 'echo "hello world!"';
Polecenie może mieć zarówno pojedyncze, jak i podwójne tiki:
$command = "echo `"it`'s`"";
Czy jest jakiś czysty sposób na osiągnięcie tego? Byłem w stanie wymyślić obfite i brzydkie obejścia, ale dla języka skryptowego uważam, że to powinno być bardzo proste.